首页 > 技术文章 > sql查询的日期判断问题

lip-blog 2017-08-14 09:40 原文

在SQLSERVE中,如果某个数据表的类型被定义成datetime类型,那么数据是包含秒的。这时候如何查询某天的数据呢?
新手们可能想:最直接的做法是把时间部分去掉,只取日期部分。于是日期的函数就用上了,数据虽然是查询出来了,但是效率很低啊,函数调用是没法使用索引的。可悲的是,我尝试用百度必应搜索了下,这种错误的方法还不少,五花八门,估计我们有些同学也是从网上找来的方法。

其实正确的做法很简单,例如要查询 2017年8月12日的这一天的数据,我们可以将查询范围设置为 field >= 2017-08-12 and field < 2017-08-13 就行了,意思是,时间大于等于 2017年8月12日零点零分零秒,小于2017年8月13日零点零分零秒,这就是一天的时间了!

推荐阅读