SQL中的日期差函数
生活随笔
收集整理的這篇文章主要介紹了
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.599984318996415770609318996415770609319Months_between函數會用第一個參數減去第二個參數,會產生正負值
列:
此處用trunc()函數取整數值部分,發現最后值為-12,有正負之分
計算相差年可以在后面除以12
SQLServer:
DATEDIFF() 函數返回兩個日期之間的時間。
DATEDIFF(datepart,startdate,enddate)| 年 | 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對應參數有:
| 年 | 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?
總結
以上是生活随笔為你收集整理的SQL中的日期差函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜索和数据分析引擎
- 下一篇: MySQL速忆笔记(更新中)