我有一个sqlite数据库,列dateID存储为整数,例如20131101是2013年11月1日。我需要计算从一个时期开始的天数 - 比如从句号的开头到dayNumber列。
这是我的sql:
update temptable set dayNumber = dateid - (select min(dateid) -1 from temptable)
直到我过了几个月才行得很好,例如20131101 - (比如说)20131017,我得到了85而不是我希望的15 - 有人可以帮我改变日期,所以我可以得到15吗?
答案 0 :(得分:0)
如果您的日期存储在其中一个supported date formats中,则可以使用built-in date functions对这些值进行计算。
要从yyyymmdd
转换为yyyy-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)