专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 其他数据库

请问Sqlite中调用datetime三种方式的区别

发布时间:2010-05-24 21:31:01 文章来源:www.iduyao.cn 采编人员:星星草
请教Sqlite中调用datetime三种方式的区别?
下面是在Sqlite中的调用及结果
SQL code

select datetime(1311761337,'unixepoch','localtime') -- 调用结果:2011-07-27 18:08:57
select datetime(1311761337,'unixepoch')             --调用结果:2011-07-27 10:08:57
select datetime(1311761337,'unixepoch','utc')       --调用结果:2011-07-27 02:08:57




上述结果中我对datetime(1311761337,'unixepoch','utc') 与datetime(1311761337,'unixepoch')调用理解上有点混淆了,

下面是我用C语言实现的
C/C++ code

time_t timestamp=1311761337;
tm *tmUtc,*tmLocal;

tmUtc=gmtime(&timestamp); 
cout<<asctime(tmUtc)<<endl;//结果2011-07-27 10:08:57 对应数据库中datetime(1311761337,'unixepoch')的调用

tmLocal=localtime(&timestamp);
cout<<asctime(tmLocal)<<endl;//2011-07-27 18:08:57 对应数据库中datetime(1311761337,'unixepoch','localtime')的调用



C语言中的gmtime调用先前认为是与数据库中datetime(1311761337,'unixepoch','utc')调用相对应的,但实际上不是,gmtime调用对应datetime(1311761337,'unixepoch')调用,那么对datetime(1311761337,'unixepoch','utc')调用怎么理解呢?它难道不是应该理解为把本地时间戳转换成UTC时间吗?


------解决方案--------------------
官网有说明的 http://www.sqlite.org/lang_datefunc.html
英文不好,看的头大...
select datetime(1311761337,'unixepoch','utc') 
查询utc相对于本地的时间,把本地当为0区,而utc为-8区 ,不知道是不是这个意思


------解决方案--------------------
又重新看了下官方的说明,
localtime假定左边的参数是utc时间,转换为当地时区
而utc假定左边的参数是当地时区,转换为utc时间
 "utc" assumes that the string to its left is in the local timezone and adjusts that string to be in UTC.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: