SQL Server 时间查询
日期查询
常用时间函数
datepart 参考值
| 年 | yy, yyyy |
|---|---|
| 季度 | qq, q |
| 月 | mm, m |
| 年中的日 | dy, y |
| 日 | dd, d |
| 周 | wk, ww |
| 星期 | dw, w |
| 小时 | hh |
| 分钟 | mi, n |
| 秒 | ss, s |
| 毫秒 | ms |
| 微秒 | mcs |
| 纳秒 | ns |
1. DATEADD() 函数在日期中添加或减去指定的时间间隔
DATEADD(datepart,number,date)
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数
SELECT DATEADD(MINUTE,-10,GETDATE()) --获取当前时间10分钟之内的数据
SELECT DATEADD(YEAR,1,getdate()) --一年前
SELECT DATEADD(MONTH,6,getdate()) --+6个月时间点
SELECT DATEADD(WEEK,1,getdate()) --一周
SELECT DATEADD(DAY,2,getdate()) -- 2天
SELECT DATEADD(HOUR,12,getdate()) --12小时
SELECT DATEADD(SECOND,30,getdate()) -- 30秒
2.DATEDIFF() 函数返回两个日期之间的时间。
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 参数是合法的日期表达式
SELECT * FROM table WHERE DATEDIFF(dd,StartDate,getdate())=0 --今天的所有数据:
SELECT * FROM table WHERE DATEDIFF(dd,StartDate,getdate())=1 --昨天的所有数据:
SELECT * FROM table WHERE DATEDIFF(dd,StartDate,getdate())<=7 --7天内的所有数据
SELECT * FROM table WHERE DATEDIFF(dd,StartDate,getdate())<=30 --30天内的所有数据
SELECT * FROM table WHERE DATEDIFF(mm,StartDate,getdate())=0 --本月的所有数据:
SELECT * FROM table WHERE DATEDIFF(yy,StartDate,getdate())=0 --本年的所有数据:
3.DATEPART()返回一个整数,它是日期的一部分,例如日,月和年。
DATEPART ( date_part , input_date )
--获取当前时间的年月日
(DATEPART(yy,getdate())=2019
(DATEPART(mm,getdate())=12
(DATEPART(dd,getdate())=12
SELECT DATEPART(DAYOFYEAR,GETDATE()) -- 查询今天是今年的第几天
SELECT DATEPART(dd,GETDATE()) -- 查询今天是本月的第几天
4. CONVERT()是把日期转换为新数据类型的通用函数,可以用不同的格式显示日期/时间数据
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
5.YEAR()函数返回表示指定日期中的年份的整数。
Year('2019-12-12') 值为 2019
6.MONTH()函数返回表示指定日期中的月份的整数。
Month('2019-12-12')值为12
7.DAY()函数返回表示指定日期中的日期的整数。
Day('2019-12-12')值为12

浙公网安备 33010602011771号