需要用到兩個日期(時間欄位)之間的差計算的時候~
ex:算個一天前,幾秒前~或是更多的時候,可以使用這個語法!!!
如果有兩個Date型別欄位分別是startdate,enddate
在MSSQL和Oracle 如何計算兩個欄位的時間差
MSSQL:
DATEDIFF(datepart,startdate,enddate)
datepart | datepart 縮寫(也可以不縮寫的) |
年 | yy, yyyy |
季度 | yy, yyyy |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小时 | hh |
分钟 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
纳秒 | ns |
Oracle :
--by Day
ROUND(TO_NUMBER(enddate - startdate))
更多運用舉例如下:
MSSQL | |
天 | DATEDIFF(dd,startdate,enddate) |
小時 | DATEDIFF(hh,startdate,enddate) |
分鐘 | DATEDIFF(mi,startdate,enddate) |
秒 | DATEDIFF(ss,startdate,enddate) |
毫秒 | DATEDIFF(ms,startdate,enddate) |
Oracle | |
天 | ROUND(TO_NUMBER(enddate - startdate)) |
小時 | ROUND(TO_NUMBER(enddate - startdate) * 24) |
分鐘 | ROUND(TO_NUMBER(enddate - startdate) * 24 * 60) |
秒 | ROUND(TO_NUMBER(enddate - startdate) * 24 * 60 * 60) |
毫秒 | ROUND(TO_NUMBER(enddate - startdate) * 24 * 60 * 60 * 1000) |
與每個人,一起分享所學到,所用到的,
若有錯誤,請您不吝指教,謝謝大家。