在sqlite日期算术中使用'now'

时间:2013-12-04 22:20:20

标签: sql sqlite

我有一个sqlite表,其日期字段为YYYYMMDD格式为整数(所以20131204 = 2013年12月4日),字段名称为cycleStarted。

我正在尝试计算从dateStarted到今天的天数(在这种情况下,cycleStared = 10)。

我有一点问题 - 这是我的sql - 不用说 - 不起作用;

SELECT  julianday(substr('now', 1, 4) || '-' ||
substr('now', 5, 2) || '-' ||
substr('now', 7, 2)) -
julianday(substr(cyclestarted, 1, 4) || '-' ||
substr(cyclestarted, 5, 2) || '-' ||
substr(cyclestarted, 7, 2))
FROM cycles WHERE cycleid = 10

有人能指出我正确的方向吗?

感谢。

2 个答案:

答案 0 :(得分:3)

您正在使用字符串文字 'now'的子字符串,而不是当前日期的子字符串。如果您想要当前的Julian日期,只需编写julianday('now')

答案 1 :(得分:0)

你可以试试这个

    SELECT CAST(JULIANDAY('NOW') - JULIANDAY(SUBSTR(cyclestarted, 1, 4) || '-' || SUBSTR(cyclestarted, 5, 2) || '-' || SUBSTR(cyclestarted, 7, 2)) AS INT)
      FROM cycles
      WHERE cycleid = 10