SQL Server 中的時間的加減和時間的比較

2021-09-27 15:51:19 字數 1292 閱讀 3186

最近在寫乙個專案時,用到了時間的比較和時間的加減,在這裡簡單說一下,我也是剛接觸資料庫不久,如有說的不當之處望大家包涵,指正

一、時間的比較

開始的時候我比較時間用的是 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還是很不錯的 

SQLserver中語句最後加A的問題

今天想查出去重後資料總數,只有一列,我使用以下語句總是報錯 select count word from select distinct word from test 上網查了半天好像沒有任何錯誤,看到一篇文章後面加了個a即變成如下語句 select count word from select d...

sql server 中的時間格式

通常我們再資料庫中或者 拼接是會用到一些時間的格式,比如年月日,時分秒等等 以下是我這些天來總結得到的,開啟sql server 我們用當前的日期做例子,需要特別說明的是,得到的結果的長度可以通過給varchar的長度來控制 varchar 長度 先說明,現在是2012年1月8號 select co...

SQLServer中的幾個重要時間函式

函式 引數 功能 getdate 返回系統目前的日期與時間 datediff interval,date1,date2 以interval 指定的方式,返回date2 與date1兩個日期之間的差值 date2 date1 dateadd interval,number,date 以interval...