45

您能帮我将 UNIX 纪元时间转换为yyyy-mm-dd hh:mm:ssSQLite 中的格式(24 小时)吗?(格林威治标准时间 + 7 将不胜感激)。

示例:从1319017136629Wednesday, October 19, 2011 4:38:56 PM GMT+7

p/s: 刚刚环顾四周,找到了解决方案:

SELECT datetime(1319017136629, 'unixepoch', 'localtime');

但我仍在寻找一种在 SQLite 中批量转换 UNIX 纪元时间的方法。

4

3 回答 3

32

要更改数据库中的值,请使用以下UPDATE命令:

UPDATE MyTable SET MyColumn = datetime(MyColumn, 'unixepoch', 'localtime')
于 2013-01-31T16:21:29.617 回答
21

1319017136629是 中的一个值milliseconds,它不是UNIX纪元时间;因此它必须除以1000整数并四舍五入seconds;只有这样DATE()DATETIME()才会转换。

SELECT DATETIME(ROUND(dateColumn / 1000), 'unixepoch') AS isodate FROM tableName

将数据库值转换为localtime是不幸的;输出转换的问题较少。

Y2038问题可能已经值得考虑。

于 2019-01-14T02:03:50.573 回答
2

选择日期(轮(1601272453000 / 1000),'unixepoch')

于 2020-10-20T12:45:37.753 回答