1.getdate函数:获取系统当前日期时间
2.cast函数:cast('20023-12-06' as datetime)
3.convert函数:convert(varchar(100),getdate(),120)
4.dateadd函数:向指定日期加上一段时间,返回新的值,例如:dateadd(day,3,getdate()) --返回系统日期增加三天后的日期
5.datediff函数:计算开始日期和结束日期之间的差值,例如:datediff(day,'2023-12-6',getdate()) --返回2023年12月6号与系统日期相差多少天
6.datepart函数和datename函数:两者在为weekday类型参数时返回结果不同,其余返回结果相同,但返回数据类型不相同
datepart:返回代表指定日期的指定日期部分的整数,例如:datepart(day,getdate()) --返回当前系统日期的天数(int)
datename:返回返回代表指定日期的指定日期部分的字符串,例datename(weekday,getdate()) --返回当前系统日期是星期几(nvarchar)
7.year() ,month(),day()函数:返回指定日期的年月日的整数(int)
二.SQL日期格式转换
SELECT CONVERT(varchar(100), GETDATE(), 0) --> 12 08 2023 16:17PM
SELECT CONVERT(varchar(100), GETDATE(), 1) --> 12/08/23
SELECT CONVERT(varchar(100), GETDATE(), 2) --> 23.12.08
SELECT CONVERT(varchar(100), GETDATE(), 3) --> 08/12/23
SELECT CONVERT(varchar(100), GETDATE(), 4) --> 08.12.23
SELECT CONVERT(varchar(100), GETDATE(), 5) --> 08-12-23
SELECT CONVERT(varchar(100), GETDATE(), 6) --> 08 12 23
SELECT CONVERT(varchar(100), GETDATE(), 7) --> 12 08, 23
SELECT CONVERT(varchar(100), GETDATE(), 8) --> 17:30:45
SELECT CONVERT(varchar(100), GETDATE(), 9) --> 12 08 2023 17:30:45:567PM
SELECT CONVERT(varchar(100), GETDATE(), 10) --> 12-08-23
SELECT CONVERT(varchar(100), GETDATE(), 11) --> 23/12/08
SELECT CONVERT(varchar(100), GETDATE(), 12) --> 231208
SELECT CONVERT(varchar(100), GETDATE(), 13) --> 08 12 2023 17:30:45:567
SELECT CONVERT(varchar(100), GETDATE(), 14) --> 17:30:45:567
SELECT CONVERT(varchar(100), GETDATE(), 20) --> 2023-12-08 17:30:45
SELECT CONVERT(varchar(100), GETDATE(), 21) --> 2023-12-08 17:30:45:567
SELECT CONVERT(varchar(100), GETDATE(), 22) --> 12/08/23 17:30:45:567PM
SELECT CONVERT(varchar(100), GETDATE(), 23) --> 2023-12-08
SELECT CONVERT(varchar(100), GETDATE(), 24) --> 17:30:45
SELECT CONVERT(varchar(100), GETDATE(), 25) --> 2023-12-08 17:30:45.567
SELECT CONVERT(varchar(100), GETDATE(), 100) --> 12 08 2023 17:30PM
SELECT CONVERT(varchar(100), GETDATE(), 101) --> 12/08/2023
SELECT CONVERT(varchar(100), GETDATE(), 102) --> 2023.12.08
SELECT CONVERT(varchar(100), GETDATE(), 103) --> 08/12/2023
SELECT CONVERT(varchar(100), GETDATE(), 104) --> 08.12.2023
SELECT CONVERT(varchar(100), GETDATE(), 105) --> 08-12-2023
SELECT CONVERT(varchar(100), GETDATE(), 106) --> 08 12 2023
SELECT CONVERT(varchar(100), GETDATE(), 107) --> 12 08, 2023
SELECT CONVERT(varchar(100), GETDATE(), 108) --> 17:30:45
SELECT CONVERT(varchar(100), GETDATE(), 109) --> 12 08 2023 17:30:45:567PM
SELECT CONVERT(varchar(100), GETDATE(), 110) --> 12-08-2023
SELECT CONVERT(varchar(100), GETDATE(), 111) --> 2023/12/08
SELECT CONVERT(varchar(100), GETDATE(), 112) --> 20231208
SELECT CONVERT(varchar(100), GETDATE(), 113) --> 08 12 2023 17:30:45:567
SELECT CONVERT(varchar(100), GETDATE(), 114) --> 17:30:45:567
SELECT CONVERT(varchar(100), GETDATE(), 120) --> 2023-12-08 17:30:45
SELECT CONVERT(varchar(100), GETDATE(), 121) --> 2023-12-08 17:30:45.567
SELECT CONVERT(varchar(100), GETDATE(), 126) --> 2023-12-08T17:30:45.567
SELECT CONVERT(varchar(100), GETDATE(), 130) --> 26 ????? ?????? 1445 5:30:45:567PM
SELECT CONVERT(varchar(100), GETDATE(), 131) --> 26/05/1445 5:30:45:567PM
三、日期函数中常用的参数值
年 | Year | Yy |
季 | Quarter | |
月 | Month | Mm |
年中的日 | Day of year | Dy |
日 | Day | Dd |
周数 | Weekday | Dw |
第几周 | Week | Wk |
小时 | Hour | Hh |
分钟 | Minute | Mi |
秒钟 | Second | Ss |
毫秒 | Millisecond | Ms |
微秒 | Microsecond | Mcs |
纳秒 | Nanosecond | Ns |
四.动态获取想要的某一天
select datediff(month,0,getdate()) --表示SQLServer中日期1900-01-01 与当前日期的月数
select dateadd(week,datediff(week,0,dateadd(week,0,getdate())),0) --获取当前周的第一天(可通过最里层的dateadd中的0增加或者减少获取前一周与后一周的第一天)
select dateadd(Second,-1,dateadd(week, datediff(week,0,dateadd(week,0,getdate()))+1,0)) --获取当前周的最后一天,添加一周以获取下一周的第一天,当前周的最后一天为下一个周的第一天减去一秒 --(可通过最里层的dateadd中的0增加或者减少获取前一周与后一周的最后一天)
select dateadd(month,datediff(month,0,dateadd(month,0,getdate())),0) --获取当前月份的第一天(可通过最里层的dateadd中的0增加或者减少获取前一个月与后一个月的第一天)
select dateadd(Second,-1,dateadd(month, datediff(month,0,dateadd(month,0,getdate()))+1,0)) --获取当前月的最后一天,添加一月以获取下一个月的第一天,当前月份的最后一天为下一个月的第一天减去一秒 --(可通过最里层的dateadd中的0增加或者减少获取前一个月与后一个月的最后一天)
select dateadd(quarter,datediff(quarter,0,dateadd(quarter,-0,getdate())),0) --获取当前季度的第一天(可通过最里层的dateadd中的0增加或者减少获取前一个季度与后一个季度的第一天)
select dateadd(Second,-1,dateadd(quarter,datediff(quarter,0,dateadd(quarter,0,getdate()))+1,0)) --获取当前季度的最后一天,添加一个季度以获取下一个季度的第一天,最后一天为下一个季度的第一天减去一秒 --(可通过最里层的dateadd中的0增加或者减少获取前一个季度与后一个季度的最后一天)
select dateadd(year,datediff(year,0,dateadd(year,0,getdate())),0) --获取当前年度的第一天(可通过最里层的dateadd中的0增加或者减少获取前一个年度与后一个年度的第一天)
select dateadd(Second,-1,dateadd(year, datediff(year,0,dateadd(year,0,getdate()))+1,0)) --获取当前年度的最后一天,添加一个年度以获取下一个年度的第一天,最后一天为下一个年度的第一天减去秒 --(可通过最里层的dateadd中的0增加或者减少获取前一个年度与后一个年度的最后一天)
上一篇:【架构】GPU架构总结