Sql 中日期函式的比較

2021-04-12 16:25:05 字數 1175 閱讀 1445

select convert(varchar(8),getdate(),112)

大概欄位有postdate,enddate標誌註冊時間和到期時間!

上午把到期時間,剩餘天數及24小時登入和和註冊的使用者多完成了,用了乙個函式dateditt

檢測24小時登入和註冊使用者的sql語句:

case "login":strsql=strsql+hz.iif(instr(strsql,"where")>0," and datediff(hh,lastdate,getdate())<25"," where datediff(hh,lastdate,getdate())<25")

case "reg":strsql=strsql+hz.iif(instr(strsql,"where")>0," and datediff(hh,postdate,getdate())<25"," where datediff(hh,postdate,getdate())<25")

其時已經實現了會員到期自動紅子提示,後來要完成搜尋就是可以把離到期還剩餘15天的會員多列舉出來,用datediff函式除錯了半天多不正確,剛開始以為是「'」的問題, 後來檢查了發現沒有問題基本確認是datediff函式問題,可是上面檢測時間的時候正確,而且sql中也可是使用這個函式,鬱悶大概除錯了2個小時問題依然沒有解決!

偶然想到了dateadd函式改sql語句如下:

case "enddate":strsql=strsql+hz.iif(instr(strsql,"where")>0," and enddate < dateadd(d,15,getdate())"," where enddate < dateadd(d,15,getdate())")

除錯通過,呼呼奇怪的問題後台去網上搜尋下也沒有滿意的答案,只是找到這樣一段

select member_number, first_name, last_name  from members

where datediff(yy,datofbirth,getdate()) > 21

應改為:

select member_number, first_name, last_name  from members

where dateofbirth < dateadd(yy,-21,getdate())

即:任何對列的操作都將導致表掃瞄,它包括資料庫函式、計算表示式等等,查詢時要盡可能將操作移至等號右邊。

SQL Server 中日期比較

1.當前系統日期 時間 select getdate 2.dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值 例如 向日期加上2天 select dateadd day,2,2004 10 15 返回 2004 10 17 00 00 00.000 3.datediff...

sql中日期時間相關函式

增加日期 date add adddate select date add 2020 11 04 interval 31day date 輸出 2020 12 05 select adddate 2020 11 04 31 date 輸出 2020 12 05計算兩個時間差 timestampdif...

sql中日期操作

1.看到乙個帖子,裡面日期操作函式挺多,方法技巧也挺好,學習了。declare s date select s 2012 01 01 定義開始日期 select cast datepart yy,dateadd dd,number,s as varchar 4 年 cast datepart mm,...