SQLite 添加计算列

SQLite Adding a Calculated Column

我有一个名为“Combined_Bike_Ride”的 table,SQLite 中有以下示例数据

started_at ended_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) 在 table 中。

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

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

我是否遗漏了日期计算?非常感谢任何帮助。

首先,您必须将日期格式更改为 YYYY-MM-DD hh:mm,因为如果您要执行计算时差等操作,这是唯一可以与 SQLite 的日期时间函数一起使用的文本日期格式。

为此,您可以使用函数 strftime()
使用 strftime('%s', datetimecolumn) 可以得到 1970-01-01 00:00:00datetimecolumn

之间的秒数

添加新列的正确语法是:

ALTER TABLE Combined_Bike_Ride 
ADD COLUMN ride_length 
GENERATED ALWAYS AS ((strftime('%s', ended_at) - strftime('%s', started_at)) / 60)

如果要将新列存储在table中,可以在语句末尾添加STORED