需要用到兩個日期(時間欄位)之間的差計算的時候~
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) |
與每個人,一起分享所學到,所用到的,
若有錯誤,請您不吝指教,謝謝大家。