识别SQL时间格式


8

我在SQLite数据库中找到了日期(和时间?)的这种表示形式。我不认为它是UNIX时间戳之类的任何标准,有人可以帮助我识别它吗?

498586831.475129 要么 497469155.776235

但是,有时只有一个数字(不带。)。

某些情况下:我希望该值是2007年以后而不是将来的日期(也可能是时间,最接近的秒数)。

更多信息:SQLite字段类型为 TIMESTAMP

Answers:


10

这些TIMESTAMP值可能来自Apple Core Foundation代码,该代码基于格林尼治标准时间2001年1月1日00:00:00。

时间实用程序-核心基金会| Apple开发人员文档

Core Foundation以秒为单位测量时间。基本数据类型是CFTimeInterval,它测量两次之间的秒差。固定时间(或日期)由CFAbsoluteTime数据类型定义,该 数据类型用于测量特定日期与格林尼治标准时间1月1日00:00:00绝对参考日期之间的时间间隔。

Wolfram Alpha:2001年1月1日00:00:00 GMT + 498586831.475129秒
结果:4:20:31 GMT | 2016年10月19日星期三

Wolfram Alpha:2001年1月1日00:00:00 GMT + 497469155.776235秒
结果:5:52:35 GMT | 2016年10月6日星期四


先前的答案(仍然有意义)

没有更多的上下文,您必须寻找有意义的转换。

整数部分是合理的秒数,小数位可以表示微秒。

选项1:UNIX时代

Wolfram Alpha:距Unix纪元498586831.475129秒

相应的格里高利时间和日期:

世界标准时间下午4:20:31 | 1985年10月19日,星期六

1985年的日期对于该记录是否合理?

选项2:替代纪元

Wolfram Alpha:498586831.475129秒前

结果:

美国东部时间下午9:43:46 | 2001年7月22日,星期日

也许,该字段代表自2000年1月1日或2001年1月1日以来的秒数。

选项3:持续时间

Wolfram Alpha:498586831.475129秒

单位转换:

8.3097805245855×10 ^ 6分钟

138496.342076425小时

5770.680919851天

格里高利年平均15.799587725555

这个时间与记录有关吗?

编辑:在您的附加上下文(日期为2007年至今)中,“选项2:替代纪元”变得最合理,此记录大约在15.8年之后出现。


它的确来自iOS应用程序,发现
Xaser
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.