Sql之datediff的用法

简介: 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;

目录
相关文章
|
4月前
|
SQL Java 数据库连接
SQL SELECT语句的基本用法
SQL SELECT语句的基本用法
|
2月前
|
SQL XML Java
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
文章介绍了MyBatis中动态SQL的用法,包括if、choose、where、set和trim标签,以及foreach标签的详细使用。通过实际代码示例,展示了如何根据条件动态构建查询、更新和批量插入操作的SQL语句。
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
|
2月前
|
SQL 存储 安全
SQL Server用法
SQL Server用法
58 1
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
43 1
|
3月前
|
SQL 关系型数据库 MySQL
8、SQL高级用法
8、SQL高级用法
18 0
|
5月前
|
SQL 数据库
SQL中CASE WHEN THEN ELSE END的用法详解
SQL中CASE WHEN THEN ELSE END的用法详解
|
5月前
|
SQL
SQL语句case when then else end用法
SQL语句case when then else end用法
|
5月前
|
SQL 数据库
SQL DISTINCT 用法总结
SQL DISTINCT 用法总结
|
4月前
|
SQL Java 数据库连接
SQL SELECT语句的基本用法
SQL SELECT语句的基本用法
|
5月前
|
SQL 搜索推荐 数据库
Sql中的like的用法
Sql中的like的用法