SQLite julianday DateTime日期时区问题小记录

最近在忙微博粉丝精灵,特忙,没什么时间写博文了,今天偷偷的简单写点几行吧。

 

对于MSSQL中常见的DateDiff函数取两个日期间的天数差,在SQLite 中,有一个函数julianday,可以替换使用。

 

用法就是:julianday(datetime())-julianday(CreateTime) --CreateTime 是列名。

 

一直以来,都习惯性这么用,今天有点需求,同一点击在1天内有效,一开始写成:where julianday(datetime())-julianday(CreateTime) =0

 

经过调试之后,发现这里犯了几个错误。

 

1:julianday(datetime())-julianday(CreateTime)的差值出来的不是整数,是浮点数,所以不会等于0那么巧。

而datediff(d,getdate(),'2011-10-13 11:11:11') 出来的,是整数,这是一点区别。

 

2:datetime(),默认取的值是UTC时间,和我们默认的时间就产生时差,换成datetime('now','localtime'),就好了。

 

于是,最终正确的写法就成了:where julianday(datetime('now','localtime'))-julianday(CreateTime) <1

 

OK,本文就小小记录到这里了。

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2011/11/21/2257182.html

时间: 2024-12-09 01:32:58

SQLite julianday DateTime日期时区问题小记录的相关文章

SQLite DateTime日期时区问题解决方法

对于MSSQL中常见的DateDiff函数取两个日期间的天数差,在SQLite 中,有一个函数julianday,可以替换使用.   用法就是:julianday(datetime())-julianday(CreateTime) --CreateTime 是列名.   一直以来,都习惯性这么用,今天有点需求,同一点击在1天内有效,一开始写成:where julianday(datetime())-julianday(CreateTime) =0   经过调试之后,发现这里犯了几个错误.   1

PHP系统时区8小时差设置方法

php教程系统时区8小时差设置方法 修改php系统时区的两种方式: 1.修改php.ini文件中的设置,找到[date]下的";date.timezone=",将该项修改为date.timezone=asia/hong_kong (prc 中国时间),然后重新启动apache服务器. 2.在应用程序中,使用时间日期函数之前添加"date_default_timezone_set("asia/hong_kong")"函数 修改php.ini文件后获

sqlite数据库怎么统计某一字段记录中某条记录出现的次数。

问题描述 sqlite数据库怎么统计某一字段记录中某条记录出现的次数. 我数据库中有一条字段路面有很多记录,我想要知道这些记录中某一条记录出现的次数. 应该怎么写. 解决方案 select count(t) from. ... where..

sqlite-如何安卓中使用SQLite的进行日期排序

问题描述 如何安卓中使用SQLite的进行日期排序 新手问题 当我的数据改变时 我能够向SQLite中插入时间 解决方案 最后能取出按照时间排序的数据,就像历史记录那样 解决方案二: 安卓中SQLite数据库的使用安卓中SQLite的简单使用

android-在已有编写日记的日历的日期上添加小标注

问题描述 在已有编写日记的日历的日期上添加小标注 安卓的日记本,首页面是日历,在已有编写日记的日期上添加小标注,表示这一日期里有编写日记 解决方案 只能自定义了.参考http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0930/3538.html

关于SQLite的datetime存取问题

问题描述 关于SQLite的datetime格式问题能存进去,但是出不来ToString("yyyy-MM-ddHH:mm:ss");这么存我的机子读取都没有问题换台电脑就不行了用的C# 解决方案 解决方案二: 解决方案三:这个方法不行,.toString("s")存进去连时间都不对

sql server使用convert来取得datetime日期数据

sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换 语句及查询结果: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varcha

JDBC从MySQL取datetime日期不一致

问题描述 这个是数据库里面的时间:1991-00-30 12:11:00 这个是控制台输出的时间:1990-11-30 12:12:00获取日期的方法:rs.getTimestamp("year")这个是我用的日期格式化:SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd hh:MM:ss");  问题补充:<div class="quote_title">sinly 写道&l

查看Win7的安装日期时间的小命令

1. 按下快捷键"Win+R",在运行窗口中输入"CMD",按下确认按钮,打开Win7的DOS窗口. 在DOS窗口中输入字符串 systeminfo|find "日期" ,回车,等待片刻,就可以看到当前Win7系统的安装日期和时间信息.正在使用Win7系统的朋友们,赶紧试试用这个方法查查你的Win7系统是什么时候安装的吧! 如果直接输入"systeminfo"命令,回车后还可以看到更多当前Win7系统信息,比如系统名称.系统版