0

我有一个 sqlite DB,列 dateID 存储为一个整数,例如 20131101 是 2013 年 11 月 1 日。我需要计算从一个时期开始的天数 - 比如说一个时期的开始到 dayNumber 列。

这是我的sql:

update temptable set dayNumber = dateid - (select min(dateid) -1 from temptable)

直到我跨越几个月,例如 20131101 - (比如说) 20131017 并且我得到 85 而不是我希望的 15 - 任何人都可以帮助我进行日期转换,以便我可以得到 15,它做得很好?

4

1 回答 1

0

如果您将日期存储为一种受支持的日期格式,则可以使用内置日期函数对这些值进行计算。

要从 转换yyyymmddyyyy-mm-dd,请使用如下表达式:

substr(dateid, 1, 4) || '-' || substr(dateid, 5, 2) || '-' || substr(dateid, 7, 2)

要将日期转换为天数,请使用,例如julianday

UPDATE temptable
SET dayNumber = julianday(substr(dateid, 1, 4) || '-' ||
                          substr(dateid, 5, 2) || '-' ||
                          substr(dateid, 7, 2)) -
                (SELECT julianday(MIN(substr(dateid, 1, 4) || '-' ||
                                      substr(dateid, 5, 2) || '-' ||
                                      substr(dateid, 7, 2))) - 1
                 FROM temptable)
于 2013-11-01T22:33:51.803 回答