前言:
现时我们对“sql判断时间在某个范围怎么写”大约比较讲究,看官们都需要了解一些“sql判断时间在某个范围怎么写”的相关文章。那么小编也在网络上收集了一些有关“sql判断时间在某个范围怎么写””的相关资讯,希望兄弟们能喜欢,兄弟们一起来了解一下吧!创建一个测试表:
create table DATE_ITEM_STAMP ( C1 DATE, C2 DATETIME, C3 DATETIME2, C4 TIME );1. MS-SQL时间类型、存储
Date: 存入的数据格式为:yyyy-mm-dd
Time: 存入的数据格式为:HH:mm:ss
DateTime: 存入的数据格式为:yyyy-mm-dd hh:mm:ss.fff(精确到1毫秒)
DateTime2 :存入的数据格式为:yyyy-mm-dd hh:mm:ss.fffffff(精确到0.1微秒)
DateTimeOffset: 存入的数据格式为:yyyy-mm-dd hh:mm:ss(精确到0.1为微秒)
dateTime字段类型赋值要用 GETDATE()
dateTime2字段类型赋值要用 SYSDATETIME() 。
datetime2支持datetime.minvalue,即0001/01/01
//函数插入 INSERT INTO dbo.DATE_ITEM_STAMP (C1, C2, C3, C4) VALUES (GETDATE(), GETDATE(), SYSDATETIME(), GETDATE())//日期字符串插入 INSERT INTO DATE_ITEM_STAMP (C1, C2, C3, C4) VALUES ('2021-06-25', '2021-06-25 22:57:13.54', '2021-06-25 22:57:13.549393', '22:57:13.54')2.ms-sql声明日期变量
--声明临时变量DECLARE @Now_Date5 DATETIME --声明临时变量且赋初值 DECLARE @Now_Date4 DATETIME = '2021-06-04 02:02:03'select @Now_Date4 -- console.log('2021-06-04 2:02:03')select @Now_Date5 -- console.log(null) --给变量赋值 SET @Now_Date5 = '2020-05-06 12:02:03'select @Now_Date4 -- console.log('2021-06-04 2:02:03')SELECT @Now_Date5 -- console.log('2020-05-06 12:02:03')3.ms-sql获取系统当前日期、指定日期年、月、日部分3.1 获取当前日期
函数:GETDATE() 获取当前系统时间 DateTime
select GETDATE()//DateTime: 2021-06-25 23:13:06.393
函数:SYSDATETIME()获取当前系统时间 DateTime2
SELECT SYSDATETIME()//DateTime: 2021-06-25 23:12:35.556482
函数:CONVERT(data_type(length),data_to_be_converted,style) 格式化当前日期为字符串
SELECT CONVERT(varchar,GETDATE(),120)//VARCHAR: 2021-06-25 23:15:073.2. 获取当前年
函数:DATENAME(patten,日期)、DATEPART(patten,日期)、YEAR(日期) 获取当前时间年
DECLARE @Now_Date_Time DATETIME SET @Now_Date_Time = '2020-05-06 12:02:03'select DATENAME(YYYY,@Now_Date_Time) -- 字符串:console.log('2020')select DATENAME(YEAR,@Now_Date_Time) -- 字符串:console.log('2020')select DATEPART(YYYY,@Now_Date_Time) -- 数字:console.log('2020')select DATEPART(YEAR,@Now_Date_Time) -- 数字:console.log('2020')select YEAR(@Now_Date_Time) -- 数字:console.log('2020')3.3.获取当前月
函数:DATENAME(MM,日期)、DATEPART(patten,日期)、MONTH(日期) 获取当前时间月
select DATENAME(MM,GETDATE()) select DATENAME(MONTH,GETDATE()) select DATEPART(MM,GETDATE()) select DATEPART(MONTH,GETDATE()) select MONTH(@Now_Date)3.4.获取当前日期
函数:DATENAME(MM,日期)、DATEPART(patten,日期)、DAY(日期) 获取当前时间日
DECLARE @Now_Date1 DATE = '2021-06-05'select DATENAME(DAY,@Now_Date1)select DATENAME(D,@Now_Date1)select DATENAME(DD,@Now_Date1)select DATEPART(D,@Now_Date1)select DATEPART(DD,@Now_Date1)select DATEPART(DAY,@Now_Date1)select DAY(GETDATE())3.5. 获取当前年月
select CONVERT(varchar(6),GETDATE(),112)select CONVERT(varchar(7),GETDATE(),120)3.6.获取当前年月日
select CONVERT(varchar(8),GETDATE(),112) select CONVERT(varchar(10),GETDATE(),120)4.日期常用函数
GETDATE() :获取当前时间,时间格式默认。
DATENAME:参数为两个,取值区间 interval 和时间 datedate 就是时间;
interval 包括 年,月,日,星期等
e.g:
YEAR 年;YYYY 年;YY 年;QUARTER 季度;QQ 季度 ;Q 季度;MONTH 月(04);MM 月(04);M 月(04);WEEKDAY 星期几;DW 星期几;W 星期几;WEEK 一年的第几周;WK 一年的第几周;WW 一年的第几周;ISOWK 一年的第几周;ISOWW 一年的第几周;ISO_WEEK 一年的第几周;DAY 天;DD 天;D 天;DAYOFYEAR 一年的第几天;DY 一年的第几天;Y 一年的第几天;HOUR 小时;HH 小时;MINUTE 分钟;MI 分钟;N 分钟;SECOND 秒;SS 秒;S 秒;MCS 微秒(略);MICROSECOND 微秒(略);MILLISECOND 毫秒(略);MS 毫秒(略) ; NANOSECOND 十亿分之一秒(略);NS 十亿分之一秒(略);
DATEPART:参数参考DATENAME,不过返回值不一样,
DATENAME返回varchar,
DATEPART返回int
CONVERT 函数转换格式:主要注意第三个参数 date_style ;
格式:select CONVERT(varchar,GETDATE(),0)
最后的 date_style 可以有 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,100, 101,102,103,104,105,106,107,108,109,110,111,112,113,114,120,121,126,127,130,131等常用的 20,23,24,102,111,112,120等;示例:4.1.数据类型转换函数CONVERT
一种数据类型转换成另一种数据类型,语法格式:
CONVERT(data_type(length),data_to_be_converted,style)
不过一般我们最常用的就是120,转换成类似yyyy-MM-dd HH:mm:ss
//日期->字符串 DECLARE @Date_Birthday DATETIME = '2021-06-05 04:03:02.128' --select @Date_Birthday --7.1.(120|20) yyyy-mm-dd hh:mi:ss(24h) console.log('2021-06-05 04:03:02') select CONVERT(varchar,@Date_Birthday,120) --7.2.(121|21) yyyy-mm-dd hh:mi:ss.mmm(24h) console.log('2021-06-05 04:03:02.127') select CONVERT(varchar,@Date_Birthday,121) --7.3.(102) yyyy.mm.dd console.log('2021.06.05') select CONVERT(varchar,@Date_Birthday,102) --7.4.(111)yyyy/mm/dd console.log(''2021/06/05'') select CONVERT(varchar,@Date_Birthday,111) --7.5.(112)yyyymmdd console.log('20210605') select CONVERT(varchar,@Date_Birthday,112) //字符串转日期: select CONVERT(datetime,'2007-06-05 04:03:02.128',120)4.2.常用的转换附录:W3school
Style ID
Style 格式
100 或者 0
mon dd yyyy hh:miAM (或者 PM)
101
mm/dd/yy
102
yy.mm.dd
103
dd/mm/yy
104
dd.mm.yy
105
dd-mm-yy
106
dd mon yy
107
Mon dd, yy
108
hh:mm:ss
109 或者 9
mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110
mm-dd-yy
111
yy/mm/dd
112
yymmdd
113 或者 13
dd mon yyyy hh:mm:ss:mmm(24h)
114
hh:mi:ss:mmm(24h)
120 或者 20
yyyy-mm-dd hh:mi:ss(24h)
121 或者 21
yyyy-mm-dd hh:mi:ss.mmm(24h)
126
yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130
dd mon yyyy hh:mi:ss:mmmAM
131
dd/mm/yy hh:mi:ss:mmmAM
标签: #sql判断时间在某个范围怎么写 #数据库时间区间 #数据库时间区间怎么看的