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:00
和 datetimecolumn
之间的秒数
添加新列的正确语法是:
ALTER TABLE Combined_Bike_Ride
ADD COLUMN ride_length
GENERATED ALWAYS AS ((strftime('%s', ended_at) - strftime('%s', started_at)) / 60)
如果要将新列存储在table中,可以在语句末尾添加STORED
。
我有一个名为“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:00
和 datetimecolumn
添加新列的正确语法是:
ALTER TABLE Combined_Bike_Ride
ADD COLUMN ride_length
GENERATED ALWAYS AS ((strftime('%s', ended_at) - strftime('%s', started_at)) / 60)
如果要将新列存储在table中,可以在语句末尾添加STORED
。