【发布时间】:2020-09-14 23:01:17
【问题描述】:
我的表“productions”中有一个列名为“date”的日期,该日期以 Unix 格式的整数形式存储(例如:1548263300000)。我只想检索年份。当我这样做时:
SELECT strftime('%Y ',date) as year
FROM productions
它返回空值。
当我将类型更改为 TEXT 到我的表中并以字符串格式存储日期(例如 2020-05-01 )时,相同的 sql 返回“2020”,这是正确的,也是我正在寻找的。
为什么 strftime() 不适用于整数,因为 SQLite documentation 说您可以使用 TEXT、INTEGER 和 REAL 作为日期?如何使用带整数的日期函数?
额外信息:
在本教程中,他们还将 strftime 与整数一起使用,它似乎对他们有用,所以我从中了解到,无论您使用什么类型(文本、整数、真实),这些函数都可用:link
当我使用时:
SELECT strftime('%Y',DATETIME(ROUND(date/ 1000), 'unixepoch'))
FROM productions;
它工作正常,但我不明白为什么我在使用整数时必须这样做,但当我使用文本时,它直接工作。
【问题讨论】: