SQL中的日期差函数

Oracle:

计算日期之间的天数差

select TO_NUMBER((TO_DATE('2019-01-01 19:51:20','yyyy-mm-dd hh24:mi:ss')- TO_DATE('2019-01-05 21:50:20','yyyy-mm-dd hh24:mi:ss'))*24) from dual;

结果:4.0826388888888888888888888888888888889

会用第一个参数减去第二个参数,会产生正负值,结果参考月份差函数

想要获取小时,分钟,秒及毫秒,在后面乘以对应的比例即可

计算日期之间的月份差

SELECT Months_between(SYSDATE,to_date('2019-12-30','yyyy-MM-dd')) FROM dual

其中   SYSDATE   字段指的是系统当前日期

结果:0.599984318996415770609318996415770609319

Months_between函数会用第一个参数减去第二个参数,会产生正负值

列:

此处用trunc()函数取整数值部分,发现最后值为-12,有正负之分

计算相差年可以在后面除以12

SQLServer:

DATEDIFF() 函数返回两个日期之间的时间。

DATEDIFF(datepart,startdate,enddate)
datepart缩写
yy, yyyy
季度qq, q
mm, m
年中的日dy, y
dd, d
wk, ww
星期dw, w
小时hh
分钟mi, n
ss, s
毫秒ms
微妙mcs
纳秒ns

列:

SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate

结果:-1

MySQL:
时间差函数timestampdiff:

timestampdiff(interval, datetime1,datetime2)

intervar对应参数有:

intervar参数
year
季度quarter
month
day
week
小时hour
分钟minute
second
毫秒frac_second

时间差函数datediff:

SELECT DATEDIFF(day1,day2); 
SELECT DATEDIFF('2019-01-13','2018-10-01'); 
计算的结果为俩个日期相差的天数,第一个参数-第二个参数
结果:104

时间差函数timediff:

SELECT TIMEDIFF(day1,day2);
SELECT TIMEDIFF('2019-09-22 14:51:43','2019-09-20 12:54:43');
也是第一个参数-第二个参数
结果:49:57:00

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值