SQL 查询某时间段的数据 datadiff 计算时间差

datediff语法格式:datediff(day,开始时间,结束时间)

一、应用举例:

select * from [dbo].[Kah_Order_Sum] where datediff(day,'2016-09-20',created_time)>1

上面的代码,将查询 'created_time' > '2016-09-20的所有记录。

如果要查询'created_time' < '2016-09-20的所有记录,有两个方法:

1、把最后的>1,改成<0;

2、把两个字顺序互调,变成 datediff(day,created_time,'2016-09-20')>0

二、讲解

1、语法:datediff(计算单位,开始时间,结束时间)

计算单位:一般填dayhour(天、小时)

开始时间,结束时间:可以填字段或具体的时间。

参见:http://www.w3school.com.cn/sql/func_datediff.asp

2、datediff(day,created_time,'2016-09-20')>0 根据返回的是两个列的天数差,来判断是否>0。

    =0,两个时间相等,即查某一天的数据。

    >0,结束时间晚于开始时间的0天的数据,<0,结束时间早上开始时间的0天的数据。

三、注意

1、日期格式要加单引号,不可直接写。

2、注意>1 和>0的区别,以datediff(day,created_time,'2016-09-20')>0为例:

     =0,是表示查找9-20当天的数据,>0是表示从9-21日开始的数据,>1是从9-22日开始的数据。

     这容易弄混。所以,一般建议填=0,>0.

     

原文地址:https://www.cnblogs.com/luokunlun/p/5960654.html