SQLite时间戳转换函数

SQLite时间戳转换函数,sqlite,date,timestamp,Sqlite,Date,Timestamp,我继承了一个SQLite DB,其中有一个名为ZDATE的时间戳字段 一个值是401580000,我知道它对应于2013年9月23日 我已经计算出这个区域的0是2001年1月1日的午夜(?) 但是,我没有找到任何转换函数来获取格式化日期,事实上,如果我使用date()我得到: ZDATE date(zdate) 401580000 1094776-12632211-20 任何帮助都将不胜感激 > select 401580000 / (julianda

我继承了一个SQLite DB,其中有一个名为ZDATE的时间戳字段

一个值是401580000,我知道它对应于2013年9月23日

我已经计算出这个区域的0是2001年1月1日的午夜(?)

但是,我没有找到任何转换函数来获取格式化日期,事实上,如果我使用date()我得到:

  ZDATE            date(zdate)
401580000      1094776-12632211-20
任何帮助都将不胜感激

> select 401580000 / (julianday('2013-09-23') - julianday('2001-01-01'));
86398.4509466437
> select 60*60*24;
86400
因此,这个时间戳似乎使用秒

要将其转换为时间戳,即Unix历元时间戳,只需添加适当的偏移量:

> select datetime(401580000 + strftime('%s', '2001-01-01 02:00:00'), 'unixepoch');
2013-09-23 00:00:00
因此,这个时间戳似乎使用秒

要将其转换为时间戳,即Unix历元时间戳,只需添加适当的偏移量:

> select datetime(401580000 + strftime('%s', '2001-01-01 02:00:00'), 'unixepoch');
2013-09-23 00:00:00

谢谢,我还添加了7200,所以它正确地返回了2013-09-23的午夜。你知道为什么在2001年1月1日开始吗?它是iOS应用程序使用的数据库2001年是Mac OS X 10.0发布的一年。谢谢,我还添加了7200,所以它正确地返回了2013-09-23的午夜。你知道为什么在2001年1月1日开始吗?它是iOS应用程序使用的数据库2001年是Mac OS X 10.0发布的一年。