一 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)