SQLite中的UTC时间错误

时间:2019-07-16 07:34:44

标签: sqlite utc localtime

我的Centos 7.6服务器物理上位于德国,但已配置为向我(在伦敦)显示正确的本地时间和UTC时间。

$ date
Tue Jul 16 08:31:51 BST 2019
$ date -u
Tue Jul 16 07:31:55 UTC 2019

但是在SQLite数据库中,情况不正确。

$ !sql
sqlite3 apollo.db 
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select datetime('now');
2019-07-16 07:32:48
sqlite> select datetime('now', 'localtime');
2019-07-16 08:32:53
sqlite> select datetime('now', 'utc');
2019-07-16 06:32:58

它正确显示了当地时间,但UTC却是一个小时。有没有可以调整的配置设置?

更新:好的。仔细阅读the documentation后,似乎我误会了,这种行为是a)正确的,b)预期的。 select datetime('now')是获取UTC时间的正确方法。所以现在我对select datetime('now', 'utc')所做的事情有点困惑(可能没什么用)。

1 个答案:

答案 0 :(得分:1)

  

更新:好的。仔细阅读文档后,似乎我误会了,此行为是a)正确和b)预期的。选择datetime('now')是获取UTC时间的正确方法。所以现在我对选择datetime('now','utc')所做的工作有些困惑(可能没什么用)。

示例之前的最后一段解释为:-

  

“ utc” 修饰符与“本地时间” 相反

     

“ utc”假定其左侧的字符串位于本地时区,并将该字符串调整为UTC。

     

如果先前的字符串不在本地时间,则未定义“ utc”的结果

SQL As Understood By SQLite - Date And Time Functions