SQL Server与MySQL方言对比

使用SQL Server时注意与MySQL的方言差异

Datediff函数

DATEDIFF函数计算两个DATE,DATETIME或TIMESTAMP值之间的天数。

MySQL方言

语法如下:
DATEDIFF(date_expression_1,date_expression_2)
得出来的结果是 date_expression_1 - date_expression_2的天数差
注意:

  1. 是前面天数减去后面天数:
  2. DATEDIFF函数接受两个任何有效日期或日期时间值的参数。如果您传递DATETIME或TIMESTAMP值,则DATEDIFF函数仅将日期部分用于计算,并忽略时间部分。

SQL Server方言

语法:datediff(datepart,startdate,enddate)

1、datepart,规定应在日期的哪一部分计算差额

日期 缩写

year yy/yyyy

quarter qq/q

Month mm/m

day dd/d

Hour hh/h

minute mi,n

second ss,s

注意:是后面日期减去前面的日期(enddate-startdate)

1.参数是 yyyy的话,统计相差的年份,截取前4位进行统计
select datediff(yyyy,‘20210928’,‘20200121’)test
–select datediff(year,‘20210928’,‘20200121’)test
–select datediff(yy,‘20210928’,‘20200121’)test

2、参数是 qq时,统计相差的季度
select datediff(qq,‘20210928’,‘20200121’)test
–select datediff(q,‘20210928’,‘20200121’)test
–select datediff(quarter,‘20210928’,‘20200121’)test

3、参数是 mm的时候,统计相差的月份,截取前6位进行统计
select datediff(mm,‘20210928’,‘20200121’)test
–select datediff(m,‘20210928’,‘20200121’)test
–select datediff(month,‘20210928’,‘20200121’)test

4、参数是 dd的时候,统计相差的天数
select datediff(dd,‘20210928’,‘20200121’)test
–select datediff(day,‘20210928’,‘20200121’)test
–select datediff(d,‘20210928’,‘20200121’)test

5、参数是 hh的时候,统计相差的小时
select datediff(hour,‘20211112 10:00:00’,‘20211112 00:00:00’)test_hour
,datediff(hh,‘20211112 10:00:00’,‘20211112 00:00:00’)test_hh

6、参数是 mi的时候,统计相差的分钟数
select datediff(minute,‘20211112 10:00:00’,‘20211112 00:00:00’)test_minute
,datediff(mi,‘20211112 10:00:00’,‘20211112 00:00:00’)test_mi
,datediff(n,‘20211112 10:00:00’,‘20211112 00:00:00’)test_n

7、参数是 ss的时候,统计相差的秒数
select datediff(second,‘20211112 10:00:00’,‘20211112 00:00:00’)test_second
,datediff(ss,‘20211112 10:00:00’,‘20211112 00:00:00’)test_ss
,datediff(s,‘20211112 10:00:00’,‘20211112 00:00:00’)test_s

亲测,第一个参数写day也可以取到两个日期之间的天数差值。但是当一个是date格式,一个是timestamp格式的时候,也不需要将cast(timestamp格式的字段 as date)强制转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值