SQL SERVER 中日期格式化

目录

1.date和datetime类型的区别

2. GETDATE()函数,返回当前日期时间(datetime类型)

3. CONVERT()函数,格式化日期

4. DATEPART() 函数 


1.date和datetime类型的区别

date是SQL Server 2008新引进的数据类型。它表示一个日期,不包含时间部分,可以表示的日期范围从公元元年1月1日到9999年12月31日。只需要3个字节的存储空间。

dateTime 日期和时间部分,可以表示的日期范围从公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精确到3.33毫秒,它需要8个字节的存储空间。

2. GETDATE()函数,返回当前日期时间(datetime类型)

SELECT GETDATE();
返回
2023-03-27 09:36:30.207

3. CONVERT()函数,格式化日期

CONVERT() 函数是把日期转换为新数据类型的通用函数,也可以用不同的格式显示日期/时间数据。

语法:

CONVERT(data_type(length),date,style)
  • data_type(length) 规定目标数据类型(带有可选的长度)。date指需要转换的值。style 规定日期/时间的输出格式。
  • 可以使用的 style 值:当前时间2023年3月27日 09:36:30.207
Style ID SQL 对应格式
1 SELECT CONVERT(varchar(100), GETDATE(), 1); 01/03/17
2 SELECT CONVERT(varchar(100), GETDATE(), 2); 17.01.03
3 SELECT CONVERT(varchar(100), GETDATE(), 3); 03/01/17
4 SELECT CONVERT(varchar(100), GETDATE(), 4); 03.01.17
5 SELECT CONVERT(varchar(100), GETDATE(), 5); 03-01-17
6 SELECT CONVERT(varchar(100), GETDATE(), 6); 03 01 17
7 SELECT CONVERT(varchar(100), GETDATE(), 7); 01 03, 17
8 SELECT CONVERT(varchar(100), GETDATE(), 8); 09:09:10
9 SELECT CONVERT(varchar(100), GETDATE(), 9); 01 3 2017 9:09:10:037AM
10 SELECT CONVERT(varchar(100), GETDATE(), 10); 01-03-17
11 SELECT CONVERT(varchar(100), GETDATE(), 11); 17/01/03
12 SELECT CONVERT(varchar(100), GETDATE(), 12); 170103
13 SELECT CONVERT(varchar(100), GETDATE(), 13); 03 01 2017 09:09:10:037
14 SELECT CONVERT(varchar(100), GETDATE(), 14); 09:09:10:037
20 SELECT CONVERT(varchar(100), GETDATE(), 20); 2017-01-03 09:09:10
21 SELECT CONVERT(varchar(100), GETDATE(), 21); 2017-01-03 09:09:10.037
22 SELECT CONVERT(varchar(100), GETDATE(), 22); 01/03/17 9:09:10 AM
23 SELECT CONVERT(varchar(100), GETDATE(), 23); 2017-01-03
24 SELECT CONVERT(varchar(100), GETDATE(), 24); 09:09:10
25 SELECT CONVERT(varchar(100), GETDATE(), 25); 2017-01-03 09:09:10.037
100 SELECT CONVERT(varchar(100), GETDATE(), 100); 01 3 2017 9:09AM
101 SELECT CONVERT(varchar(100), GETDATE(), 101); 01/03/2017
102 SELECT CONVERT(varchar(100), GETDATE(), 102); 2017.01.03
103 SELECT CONVERT(varchar(100), GETDATE(), 103); 03/01/2017
104 SELECT CONVERT(varchar(100), GETDATE(), 104); 03.01.2017
105 SELECT CONVERT(varchar(100), GETDATE(), 105); 03-01-2017
106 SELECT CONVERT(varchar(100), GETDATE(), 106); 03 01 2017
107 SELECT CONVERT(varchar(100), GETDATE(), 107); 01 03, 2017
108 SELECT CONVERT(varchar(100), GETDATE(), 108); 09:09:10
109 SELECT CONVERT(varchar(100), GETDATE(), 109); 01 3 2017 9:09:10:037AM
110 SELECT CONVERT(varchar(100), GETDATE(), 110); 01-03-2017
111 SELECT CONVERT(varchar(100), GETDATE(), 111); 2017/01/03
112 SELECT CONVERT(varchar(100), GETDATE(), 112); 20170103
113 SELECT CONVERT(varchar(100), GETDATE(), 113); 03 01 2017 09:09:10:037
114 SELECT CONVERT(varchar(100), GETDATE(), 114); 09:09:10:037
120 SELECT CONVERT(varchar(100), GETDATE(), 120); 2017-01-03 09:09:10
121 SELECT CONVERT(varchar(100), GETDATE(), 121); 2017-01-03 09:09:10.037
126 SELECT CONVERT(varchar(100), GETDATE(), 126); 2017-01-03T09:09:10.037
130 SELECT CONVERT(varchar(100), GETDATE(), 130); 5 ???? ?????? 1438 9:09:10:037AM
131 SELECT CONVERT(varchar(100), GETDATE(), 131); 5/04/1438 9:09:10:037AM

 

4. DATEPART() 函数 

datepart()函数是用来返回 指定日期时间的指定日期部分的整数。返回类型为:int

语法:例如获取当前时间的年份:

select DATEPART(yy,getdate())
-- 2023
select DATEPART(mm,getdate())
-- 3
select DATEPART(dd,getdate())
-- 27
日期部分 缩写 说明
year yy,yyyy 返还年份
quarter qq,q 返还季度
month mm,m 返还月份
day of year dy ,y 返还一年中的第几天
day dd,d 返还日
week wk,ww 返还一年中的第几周
weekday dw 返还星期几 数据型
hour hh 返还小时
minute mi,n 返还分钟
second ss,s 返还秒
millisecond ms 返还毫秒数