业精于思

SQLServer 日期函数大全

一 SQL Server系统函数

1.1常用函数:

函数

参数/功能

示例

查询内容

1 GetDate()

返回系统当前时间

select GetDate()

2018-12-15 15:24:10

2 DateDiff (interval,date1,date2)

返回date2 与date1两个日期之间的差值 date2-date1

 SELECT DATEDIFF(YY,'2008-1-1',GETDATE())

SELECT DATEDIFF(MM,'2008-1-1',GETDATE())

可设置Format格式,yy,MM

 10

131

3 DateAdd (interval,number,date)

以interval指定的方式,加上number之后的日期

 SELECT DATEADD(YY,1,GETDATE())

2019-12-15 15:30:10

4 DatePart (interval,date)

返回日期date中,interval指定部分所对应的整数值

 SELECT DatePart(y,'2005-7-25 22:56:32')

 返回值为 206即这一年中第206天

5 DateName (interval,date)

返回日期date中,interval指定部分所对应的字符串名称

 SELECT DATENAME(dd,GETDATE())

 15

6 Day(),Month(),Year()

分别显示查询时间的日,月,年

select Day(getdate())

 select Month(getdate())

 15

12

1.2 Format格式对应显示部分示例:

Format值 缩 写(Sql Server) 说明
Year Yy,yyyy 年 1753 ~ 9999
Quarter Qq,q 季 1 ~ 4
Month m,mm 月1 ~ 12
Day of year Dy,y 一年的日数,一年中的第几日 1-366
Day d,dd 日,1-31
Weekday Dw 一周的日数,一周中的第几日 1-7
Week Wk,ww 周,一年中的第几周 0 ~ 51
Hour hh 时0 ~ 23
Minute mi,n 分钟0 ~ 59
Second ss,s 秒 0 ~ 59
Millisecond Ms 毫秒 0 ~ 999

二 详细说明

2.1 获取时间格式

1 select getdate()     --2018-12-15 15:24:10  --显示当前时间

2 select day(getdate())  --15

3 select month('2012-11-15') --11

4 select year('2008-06-06')  --2008

5 select datepart(year,GETDATE()) --2018

6 select datepart(month,GETDATE()) --12

7 select datepart(day,GetDate()) --15

2.2 其他内容:

1、SELECT CONVERT(VARCHAR(100), GETDATE(), 0) --12 15 2018  3:56PM

2、SELECT CONVERT(VARCHAR(100), GETDATE(), 112) --20181215  ,常用到的函数,后面跟的数字可以根据需要进行改变0,1,2,...

3、Select datename(YYYY,GETDATE())+'-'+datename(MM,GETDATE())  --2018-12 +合并字符串

 

4、select left(CONVERT(VARCHAR(100), GETDATE(), 120),7) --2018-12 获取左边7个字符串

5、select right(CONVERT(VARCHAR(100), GETDATE(), 120),5)  --03:55 右边字符串

2.3

1、--统计当前【>当天00点以后的数据】

SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC
2、--统计本周

SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0
3、--统计本月

SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0
4、统计当前

SELECT * FROM 表 WHERE datediff(day,[dateadd],getdate())=0
Select * From table with(nolock) Where Convert(varchar(10),[CreateTime],120) = Convert(varchar(10),getDate(),120)

 

posted on 2018-12-15 16:08  zoood  阅读(414)  评论(0编辑  收藏  举报

导航