我在从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'表中的列。其中包含值的记录。
请尽快解决此问题。 我无法添加屏幕截图。
答案 0 :(得分:1)
2014-01-29 02:55:00 AM
等日期戳不在format understood by SQLite中。只支持24小时,您需要删除AM / PM。
除此之外,如果您计划在日期时间进行数学运算,请考虑将它们存储在一个格式中,使计算变得简单,快速和可靠,例如unixepoch秒。