SQLite 添加计算列

问题描述

我在 sqlite 中有一个名为“Combined_Bike_Ride”的表,其中包含以下示例数据

开始时间 end_at
27/05/2020 10:03 27/05/2020 10:16
25/05/2020 10:47 25/05/2020 11:05

我想在该表中添加一个新的计算列“ride_length”,其中ride_length = (ended_at) - (started_at)。

我使用了下面的 sql 代码,但在 AS 附近出现语法错误

ALTER TABLE Combined_Bike_Ride ADD COLUMN ride_length AS (ended_at) - (started_at)

我是否缺少日期计算?非常感谢任何帮助。

解决方法

首先,您必须将日期格式更改为 when: - executeapp1.rc == 0 ,因为如果您想执行诸如计算时差之类的操作,这是唯一可以与 SQLite 的日期时间函数一起使用的文本日期格式。

为此,您可以使用函数 YYYY-MM-DD hh:mm
使用 strftime(),您可以获得 strftime('%s',datetimecolumn)1970-01-01 00:00:00

值之间的秒数

添加新列的正确语法是这样的:

datetimecolumn

如果您希望将新列存储在表中,您可以在语句末尾添加 ALTER TABLE Combined_Bike_Ride ADD COLUMN ride_length GENERATED ALWAYS AS ((strftime('%s',ended_at) - strftime('%s',started_at)) / 60)