时间戳转换程序

时间:2014-10-16 06:36:39

标签: sqlite date datetime timestamp

我在Sqlite数据库中遇到了Date或Timestamp转换。我有一个sqlite数据库,其中我有一个包含BIGINT数据的列,其中保留了某种时间戳。这些值是18位数,一些示例是634741056000000000,634766976000000000.这些值从日期时间的Windows应用程序到达数据库,如示例。下面给出了该时间戳的一些等效日期。

  1. 2012-06-01 00:00:00.000 = 634741056000000000
  2. 2012-07-01 00:00:00.000 = 634766976000000000
  3. 2011-11-01 00:00:00.000 = 634557024000000000
  4. 2011-12-01 00:00:00.000 = 634582944000000000
  5. 这就是我所知道的,我已经尝试了几种可能的转换程序,但还没有运气。任何人都可以帮我解决转换程序吗?我在iOS应用程序中使用它,所以转换过程对我来说很重要。任何帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

当我们比较一个月的长度时:

> SELECT strftime('%s', '2012-07-01') - strftime('%s', '2012-06-01'),
  634766976000000000 - 634741056000000000;
2592000|25920000000000

我们看到单位是一万分之一秒。

要计算纪元,只需使用这些值与SQLite的unixepoch值之间的差异:

> SELECT datetime(strftime('%s', '2012-06-01') - 634741056000000000 / 10000000,
                  'unixepoch');
0001-01-01 00:00:00