SQLite时间戳字段-转换为日期时间

时间:2019-02-27 20:40:30

标签: sqlite timestamp

编辑

因此,在MikeT的帮助下,我想到了将 Apple Cocoa Core Data时间戳值转换为Unix纪元值的方法:

SELECT datetime(559951200 + 978307200, 'unixepoch', 'localtime');

559951200是我的 Apple Cocoa Core Data时间戳

然后,要获取我的本地时间,我需要在SQLite的localtime函数中添加一个附加参数datetime(...)


我正在查看ScanSnap Home扫描仪和Mac版文档管理器的sqlite数据库。

它位于~/Library/Application Support/PFU/ScanSnap Home/Managed/ScanSnapHome.sqlite

数据库中有许多带有时间戳字段的表。我无法将那些时间戳值转换为日期/时间。

例如:我有一个日期值,可以在用户界面中看到为2018-09-30。该日期值将转换为数据库(“时间戳记”字段)中的559951200

假设数字是一个纪元值,我尝试通过https://www.epochconverter.com将其转换为日期值,但是它将给我September 30, 1987

我想念什么?

1 个答案:

答案 0 :(得分:1)

您的时间戳似乎是 Apple Cocoa Core Data时间戳

通过添加 978307200 ,它将转换为一个纪元值。

因此559951200 + 978307200 = 1538258400 ,这是 2018年9月29日星期六22:00:00 的纪元时间 -( GMT ,因此当地时间很可能是30日)。

Core Data的开始日期为2001/01/01,而不是1970/01/01,因此978307200是两者之间的秒差。

签出Cocoa Core Data Timestamp Converter