【发布时间】:2013-07-17 19:04:55
【问题描述】:
是否可以在 Sqlite3 中获得两个 TIMESTAMP 值之间的差异(以秒为单位)?
例如,我尝试过以下查询:
SELECT CURRENT_TIMESTAMP - my_timestamp FROM my_table;
而且我总是得到“0”。谁能告诉我我做错了什么? (注意,我已经验证 my_timestamp 确实是过去的。)
【问题讨论】:
标签: sqlite
是否可以在 Sqlite3 中获得两个 TIMESTAMP 值之间的差异(以秒为单位)?
例如,我尝试过以下查询:
SELECT CURRENT_TIMESTAMP - my_timestamp FROM my_table;
而且我总是得到“0”。谁能告诉我我做错了什么? (注意,我已经验证 my_timestamp 确实是过去的。)
【问题讨论】:
标签: sqlite
知道了:
SELECT (julianday(CURRENT_TIMESTAMP) - julianday(my_timestamp)) * 86400.0) FROM my_table;
julianday 返回自公元前 4714 年 11 月 24 日格林威治中午以来的小数天数。然后我将差值乘以每天的秒数。
【讨论】:
select (julianday("2015-01-01T12:00:00") - julianday("2015-01-01T11:00:00")) * 24; 会产生预期的一小时,或者足够接近它:0.99999999627471。
julianday 的输入实际上是一个时间戳,而不仅仅是一个日期戳。
另一个最接近秒的变体
CAST(strftime('%s', CURRENT_TIMESTAMP) as integer) -
CAST(strftime('%s', my_timestamp) as integer)
【讨论】: