SQL SERVER 中日期格式化,及GETDATE()、CONVERT()函数使用说明
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();
返回
2017-03-16 09:10:08.947
例如创建表格M
CREATE TABLE [dbo].[M](
[id] [int] NULL,
[日期] [date] NULL,
[时间] [datetime] NULL
) ON [PRIMARY]
可以使用GETDATE()函数插入数据
INSERT INTO M(id, 日期, 时间) VALUES (1, CONVERT(VARCHAR, GETDATE(), 110), GETDATE());
3. CONVERT()函数,格式化日期
CONVERT() 函数是把日期转换为新数据类型的通用函数,也可以用不同的格式显示日期/时间数据。
语法:
CONVERT(data_type(length),date,style)
- data_type(length) 规定目标数据类型(带有可选的长度)。date指需要转换的值。style 规定日期/时间的输出格式。
- 可以使用的 style 值:当前时间2017年1月3日 09:09:10:037
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 |