MS SQL Server带有时间的记录怎样查询

比如某一张表[A]有一个保存日期包含时间字段[B],如果以这个段[B]作查询条件对数据记录进行查询。也我们得花些心思才能查询到我们想得到的记录。

现在我们需要查询这天2014-06-21的所有记录:

SELECT * FROM [A] WHERE [B] = '2014-06-21'


上面的语法,将查询不到任何记录。也许会有网友想到使用BETWEEN:

SELECT * FROM [A] WHERE [B] BETWEEN '2014-06-21 00:00:00' AND '2014-06-21 23:59:59'


这样指定日期范围,确实可以查询到这天的数据记录,但是如果[B]有存储2014-06-21 23:59:59.xxx这样时间的话,这笔记录将会查询不出来。
或许你可以使用下面的方法来解决《如何获取当前日期的午夜的时间值http://www.cnblogs.com/insus/archive/2011/09/09/2172419.html 和 《如何获取当前日期的最大时间值http://www.cnblogs.com/insus/archive/2011/09/09/2172687.html 

这样,就可以写成:

 

但是这样的实现似乎复杂了一点,是否更简单一点写法呢? 看看:


 

posted @ 2014-06-21 10:09  Insus.NET  阅读(1289)  评论(3编辑  收藏  举报