最近在寫一個項目時,用到了時間的比較和時間的加減,在這里簡單說一下,我也是剛接觸數據庫不久,如有說的不當之處望大家包涵,指正
一、兩個時間的比較差值
開始的時候我比較時間用的是 Time>GETDATE() 簡單粗暴
其實SQL Server有自帶的時間比較函數,所以可以用它自帶的,還安全也很方便
DATEDIFF();
我參照的W3School 中對於DATEDIFF函數的解析,具體如下:
語法
DATEDIFF(datepart,startdate,enddate)
其中datepart是只你要比較這個兩個時間的年?還是月?還是日?還是小時等相差多少
具體寫法參照下圖:
datepart | 縮寫 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小時 | hh |
分鍾 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
納秒 | ns |
簡單的寫個例子說明下:
DATEDIFF(HH,'2014-06-25 8:00:00','2014-06-25 12:58:00') 得到值是4,就是這個兩時間相比較小時相差4個小時
如果要比較天數,就把HH改為d即可,其他比較可以修改上面的時間,例如修改年,月,日等分別看看結果
二、對時間的加減計算
開始我用的是 Time+1就是在時間上加一天,減一天就用Time-1,同樣的簡單粗暴
下面說一下SQL Server中自帶的時間加減的函數
語法如下:
DATEADD(datepart,number,date)
其中datepart是你要加減的時間的形式,加年?還是月?還是日等
具體寫法如下:
datepart | 縮寫 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小時 | hh |
分鍾 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
納秒 | ns |
感覺和上述的DATEDIFF差不多,直接看例子:
DATEADD(d,1,GETDATE())是當前時間加一天,減一天就用 DATEADD(d,-1,GETDATE())
如果是對於年、月、小時等加減參照上圖,修改datepart即可,方便快捷
ps:W3School還是很不錯的 http://www.w3school.com.cn/sql/