【发布时间】:2019-02-15 08:37:00
【问题描述】:
我在 MacOS 上有一个带有时间戳数据的 SQLite 3 数据库(通常类似于 279020203.539467)。
documentation 表示日期可以存储为
REAL - as Julian day numbers, the number of days since noon in Greenwich
on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
看起来这就是我所拥有的。
我想将其导出并导入其他数据库。
我假设时间戳数据类型在数据库引擎之间不兼容,因此必须在某处进行一些转换,并且我假设最好在从 SQLite 数据库中导出数据时这样做。
但我不知道如何进行这种转换。
我查看了this answer,它指的是this forum post,这表明在 SQLite 中您可以执行类似的操作
select datetime('40660.9454658044', '+2415018 days', '+12 hours', 'localtime');
(也许 2415018 是公元前 4714 年 11 月 24 日与其他神奇日期之间的天数...)
但是,将本示例中的时间戳字符串替换为我所拥有的结果为 null。大概是因为 '279020203.539467' 是某种其他类型的时间戳。它也比示例大一些。
但是如何将其转换为可用日期?我知道应该在 2011/2012 年左右。
将数据解释为“整数”(自 1970-01-01 以来的秒数)给出 1978,因此这也不正确。
更新:我发现了
288773834.371606 should be 2010-02-25 07.57
296636121.950064 should be 2010-05-27 08.55
(如果重要,CET)。
【问题讨论】: