sql 按日期查询
DATEDIFF
返回跨兩個(gè)指定日期的日期和時(shí)間邊界數(shù)。
語法
DATEDIFF ( datepart , startdate , enddate )
參數(shù)
datepart
是規(guī)定了應(yīng)在日期的哪一部分計(jì)算差額的參數(shù)。下表列出了 Microsoft? SQL Server™ 識別的日期部分和縮寫。
日期部分 縮寫
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
startdate
是計(jì)算的開始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達(dá)式。
因?yàn)?smalldatetime 只精確到分鐘,所以當(dāng)用 smalldatetime 值時(shí),秒和毫秒總是 0。
如果您只指定年份的最后兩位數(shù)字,則小于或等于"兩位數(shù)年份截止期"配置選項(xiàng)的值的最后兩位數(shù)字的數(shù)字所在世紀(jì)與截止年所在世紀(jì)相同。大于該選項(xiàng)的值的最后兩位數(shù)字的數(shù)字所在世紀(jì)為截止年所在世紀(jì)的前一個(gè)世紀(jì)。例如,如果 two digit year cutoff 為 2049(默認(rèn)),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數(shù)的年份。
enddate
是計(jì)算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達(dá)式。
返回類型
integer
注釋
startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負(fù)值。
當(dāng)結(jié)果超出整數(shù)值范圍,DATEDIFF 產(chǎn)生錯(cuò)誤。對于毫秒,最大數(shù)是 24 天 20 小時(shí) 31 分鐘零 23.647 秒。對于秒,最大數(shù)是 68 年。
計(jì)算跨分鐘、秒和毫秒這些邊界的方法,使得 DATEDIFF 給出的結(jié)果在全部數(shù)據(jù)類型中是一致的。結(jié)果是帶正負(fù)號的整數(shù)值,其等于跨第一個(gè)和第二個(gè)日期間的 datepart 邊界數(shù)。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數(shù)是 1
查詢下月即將到期會員
UpDate Jl_user set userstate='下月到期' where id in ( select id from jl_user where datediff(m,getdate(),enddate)=1)
sql中返回當(dāng)前月:select month(getdate())
總結(jié)
- 上一篇: 基于docker搭建开源扫描器——伏羲
- 下一篇: 数据库四大特性与隔离级别