Sql之datediff的用法

datediff

    描述:返回两个日期之间的时间间隔

    语法:datediff(interval,date1,date2 [,firstdayofweek][,firstweekofyear]]);

        datediff参数:

         interval:必选。字符串表达式,表示用于计算date1和date2之间的时间间隔。具体数值,参考“说明”

         date1,date2:必选。日期表达式,用于计算的两个日期。

         firstdayofweek:可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。具体数值,参考“说明”

         firstweekofyear:可选,指定一年中第一周的常数。如果没有指定,则默认为1月1日所在的星期。有关数值,参考“说明”


    说明:

         interval参数可以取的值:

                  yyyy 年

                  q    季度

                  m    月

                  y    一年的日数

                  d    日

                  w    一周的日数

                  ww   周

                  h    小时

                  m    分钟

                  s    秒

         firstdayofweek参数可以取的值:

                  vbUseSystem 0       使用区域语言支持(NLS)API设置。

                  vbSunday 1          星期日(默认)

                  vbMonday 2          星期一

                  vbTuesday 3         星期二

                  vbWednesday 4       星期三

                  vbThusday 5         星期四

                  vbFirday 6          星期五

                  vbSaturday 7        星期六

         firstweekofyear参数可以取的值:

                  vbUseSystem 0       使用区域语言支持(NLS)API设置。

                  vbFirstJan 1        由1月1日所在的星期开始(默认)

                  vbFirstFourDays 2   由在新年中至少有四天的第一周开始。

                  vbFirstFullWeek 3   由在新的一年中第一个完整的周开始。


   datediff函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用datediff计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。

   要计算date1和date2相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当interval为“一周的日数”(“w”)时,

   datediff返回两个日期之间的星期数。如果date1是星期一,则date计算到date2之前星期一的数目。此结果包含date2而不包含date1.

   如果interval是“周”(“ww”),则datediff函数返回日历表中两个日期之间的星期数。函数计算date1和date2之间星期日的数目。

   如果date2是星期日,datediff将计算date2,但即使date1是星期日,也不会计算到date1。

   如果date1晚于date2,则datediff函数返回负数。

   firstdayofweek参数会对使用“w”和“ww”间隔符号的计算产生影响。

   如果date1或date2是日期文字,则指定的年度会成为日期的固定部分,但是如果date1或date2倍包括在引号(“”)中并且省略年份,则

   在代码中每次计算date1或date2表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。

   在interval为“年”(“yyyy”)时,比较12月31日和来年的1月1日,虽然实际上只相差一天,datediff返回1表示相差一个年份。



   用法示例:

       1、示例的语句返回 1:          select fatediff(hour,'4:00AM','5:50AM');

       2、示例的语句返回102:         select datediff(month,'1987/05/02','1995/11/15');

       3、示例的语句返回0:           select datediff(day,'00:00','23:59');

       4、示例的语句返回4:           select datediff(day,'1999/07/19 00:00','1999/07/23 23:59');

       5、示例的语句返回0:           select datediff(month,'1999/07/19','1999/07/23');

       6、示例的语句返回1:           select datediff(month,'1999/07/19','1999/08/23');


   相关面试题:

       日程安排提前五分钟提醒

       select * from 日程安排 where datediff(minute,f 开始时间,getdate()) > 5;

上一篇:sphinx索引文件进一步说明——最好是结合lucene一起看,直觉告诉我二者本质无异


下一篇:冬季实战营学习报告