SQL详细的日期时间

SQL详细的日期时间

一、字符串转换和日期常用的函数
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 Qq
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增加或者减少获取前一个年度与后一个年度的最后一天)


 

转载请说明出处内容投诉
CSS教程_站长资源网 » SQL详细的日期时间

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买