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

时间:2015-06-29 12:47:33

标签: sqlite strftime

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

选择 cast((strftime('%s',t.timestamp2)-strftime('%s',t.timestamp1))AS real )/ 60/60 AS已过 从时间戳AS t; SELECT(STRFTIME('%s',timestamp1) - STRFTIME('%s',timestamp2))/ -3600来自时间戳,其中objid = 3939

结果:空

从时间戳中选择timestamp1,timestamp2,其中objid = 3939。

结果:2014-01-29 02:55:00 AM 2014-01-29 03:00:00 AM(表示我有时间戳表中的数据)

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

结果:87287.5314

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

结果:NULL值

'timestamp1'& 'timestamp2'是'timestamps'表中的列。其中包含值的记录。

请尽快解决此问题。 我无法添加屏幕截图。

1 个答案:

答案 0 :(得分:1)

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

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