JulianDay() 和 Strftime() 在计算两个日期之间的差异时返回 null

JulianDay() and Strftime() returning null when calculating difference between two dates

我在从 SQLite 数据库的 table 中检索两个日期列之间的差异时遇到问题。当我使用 CocoaMySQL MesaSQLite 3.0.9 执行查询时,结果是 'NULL' 。我有包含该列值的记录。 我的查询是

SELECT cast ( ( strftime('%s',t.timestamp2)-strftime('%s',t.timestamp1 ) ) 为真实 )/60/60 AS 流逝 FROM 时间戳 AS t; SELECT (STRFTIME('%s',timestamp1) - STRFTIME('%s',timestamp2)) / -3600 来自时间戳,其中 objid= 3939

结果:空

select timestamp1,timestamp2 来自 objid = 3939 的时间戳。

结果:2014-01-29 02:55:00 AM 2014-01-29 03:00:00 AM(意味着我有时间戳中的数据 table)

SELECT julianday('now') - julianday('1776-07-04');

结果:87287.5314

SELECT julianday(timestamp1) - 来自时间戳的 julianday(timestamp2) where objid =3939

结果:空值

'timestamp1' 和 'timestamp2' 是 'timestamps' table 中的列。其中有带值的记录。

请尽快提供解决此问题的解决方案。 我无法添加屏幕截图。

2014-01-29 02:55:00 AM 等日期戳不在 format understood by SQLite 中。只支持24小时制,需要去掉AM/PM。

除此之外,如果您计划对日期时间进行数学运算,请考虑首先将它们存储在使计算变得简单、快速和可靠的格式中,例如 unixepoch 秒。