SQL 10 函式 3 日期時間函式 - 5 計算日期差額
有時候我們需要計算連個日期的差額,比如計算“回款日”和驗收日之間所差的天數,或者檢索所有“最後一次登陸日期”與當前日期的差額大於100天的使用者資訊。主流的資料庫系統中都提供了對計算日期差額的支援。
1. MySQL
MySQL中使用DATEDIFF()函式用於計算兩個日期之間的差額,其引數呼叫格式如下:
DATEDIFF(date1, date2 )
函式將返回date1與date2之間的天數差額,如果date2在date1之後,則返回正值,否則返回負值。
比如下面的SQL語句用於計算註冊日期和出生日期之間的天數差額:
SELECT FRegDay, FBirthday, DATEDIFF(FRegDay, FBirthday), DATEDIFF(FBirthday, FRegDay) FROM T_Person
DATEDIFF()函式只能計算兩個日期間的天數擦和,如果要計算兩個日期的周差額等就需要進行換算,比如下面的SQL語句用於計算註冊日期和出生日期之間的週數差額:
SELECT FRegDay, FBirthday, DATEDIFF(FRegDay, FBirthday)/7 FROM T_Person
2.Oracle
在Oracle中,可以在兩個日期型別的資料之間使用減號運算子“-”,其計算結果為兩個日期之間的天數差,比如只想下面的SQL語句用於計算註冊日期FRegDay和出生日期FBirthday之間的時間間隔:
SELECT FRegDay, FBirthday, FRegDay-FBirthday FROM T_Person
通過減號運算子“-”計算的兩個日期之間的天數差是包含有小鼠部分的。小鼠部分是表示不足一天的部分,比如執行下面的SQL語句用於計算當前時刻和出生日期FBirthday之間的時間間隔:
SELECT SYSDATE, FBirthday, SYSDATE-FBirhday FROM T_Person
可以看到天數差的小數部分是非常精確的,所以完全可以精確地表示兩個日期時間值的小事、分、秒甚至毫秒部分。如果要計算兩個日期時間值之間的小時、分、秒甚至毫秒差的話,只要進行相應的換算就可以了,比如下面的SQL用來計算當前時刻和出生日期FBirthday之間的時間間隔(小時、分以及秒):
SELECT (SYSDATE-FBirthday)*24, (SYSDATE-FBirhday)*24*60, (SYSDATE-FBirthday)*24*60*60 FROM T_Person
下面的SQL語句用來計算當前時刻和出生日期FBirthday之間的周間隔:
SELECT SYSDATE, FBirthday, (SYSDATE-FBirthday)/7 FROM T_Person
可以從執行結果看到,計算結果含有非常精確的小數部分,不過如果對這些小數部分沒有需求的話,可以使用數值函式進行四捨五入、取最大整數等處理。比如下面的SQL用計算當前時刻和出生日期FBirthday之間的時間間隔(小時、分以及秒),並且對計算結果進行四捨五入:
SELECT ROUND((SYSDATE-FBirthday)*24), ROUND((SYSDATE-FBirthday)*24*60), ROUND((SYSDATE-FBirthday)*24*60*60) FROM T_Person
相關文章
- 日期時間函式函式
- SQL SERVER 時間和日期函式SQLServer函式
- Sql Server函式全解(4):日期和時間函式SQLServer函式
- Sql Server函式全解(四)日期和時間函式SQLServer函式
- Clickhouse 時間日期函式函式
- Sql Server系列:日期和時間函式SQLServer函式
- SQL函式之日期函式SQL函式
- 計算日期的函式函式
- sql 日期函式SQL函式
- SQL Server 裡的日期和時間函式SQLServer函式
- SPL 的日期時間函式函式
- MySQL日期時間函式大全MySql函式
- MySQL 日期時間函式大全MySql函式
- ORACLE日期時間函式大全Oracle函式
- SQLServer時間日期函式速查SQLServer函式
- Mysql中日期計算函式MySql函式
- Sql Server 日期函式SQLServer函式
- oracle日期函式(5)Oracle函式
- MySQL 的日期和時間函式MySql函式
- oracle日期函式(3)Oracle函式
- MySQL日期和時間函式彙總MySql函式
- Go基礎-時間和日期函式Go函式
- mysql日期和時間函式學習MySql函式
- WPS表格日期與時間函式函式
- 日期函式函式
- SQL Server日期計算(使用DATEADD和DATEDIFF函式)SQLServer函式
- 萬能的計算日期函式(轉)函式
- 探索MySQL高階語句(數學函式、聚合函式、字串函式、日期時間函式)MySql函式字串
- excel日期加減計算方法 excel計算日期時間差Excel
- SQL 日期格式相關函式SQL函式
- MySql中時間和日期函式MySql函式
- ABAP日期函式函式
- Sybase日期函式函式
- oracle 10g函式大全–日期型函式Oracle 10g函式
- oracle 10g函式大全--日期型函式Oracle 10g函式
- 【Mysql 學習】日期函式函式MySql函式
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- 字元函式、數字函式和日期函式字元函式