計算兩個時間之差
- 1 函數1:MySQL DATEDIFF() 函數
- 2 函數2: SQL Server DATEDIFF() 函數
- 3 總結
- 4 參考資料
1 函數1:MySQL DATEDIFF() 函數
總結:
- MySQL DATEDIFF() 函數中隻有兩個參數,即兩個時間,傳回結果是前面的時間減去後面的時間。
- 注意時間的格式要求:‘2008-12-30’ 如果不是這種格式,得首先進行格式的修改,修改的SQL語句見下面:
datediff(concat(substr(t1.day,1,4),'-',substr(t1.day,5,2),'-',substr(t1.day,7,2)),concat(substr(t2.day,1,4),'-',substr(t2.day,5,2),'-',substr(t2.day,7,2))) as diff
- 即使用concat函數進行字元串的連接配接,中間記得加上 ‘-’ 然後concat函數中的參數是逗号相連接配接!
- 另外SQL中的substr函數類似于python:
substr(str, start, length)
注意第二個參數是截取字元串的長度!來看個具體的例子就很清晰了!
2 函數2: SQL Server DATEDIFF() 函數
這個函數和上面的會有些差别,具體的差異展現在下面兩個地方:
- 第一個差異是:函數内參數有3個!
DATEDIFF(datepart,startdate,enddate)
其中datepart可以為下面這些參數:
另外兩個參數和上述的時間函數保持一緻
- 第二個差異就是在計算方式存在差異,第一個時間函數是前面的時間減去後面的時間,而這個函數則是 :後面的時間減去前面的時間!舉個栗子!
3 總結
- datediff函數有兩種:MySQL和SQL Server中
- 差異:參數個數和計算方式不同
- MySQL:2個參數,前-後
- SQL Server:3個參數,後-前
4 參考資料
- http://www.w3school.com.cn/sql/func_datediff.asp
- http://www.w3school.com.cn/sql/func_datediff_mysql.asp