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 IDSQL对应格式
SELECT CONVERT(varchar(100), GETDATE(), 1);
01/03/17
SELECT CONVERT(varchar(100), GETDATE(), 2);
17.01.03
SELECT CONVERT(varchar(100), GETDATE(), 3);
03/01/17
SELECT CONVERT(varchar(100), GETDATE(), 4);
03.01.17
SELECT CONVERT(varchar(100), GETDATE(), 5);
03-01-17
SELECT CONVERT(varchar(100), GETDATE(), 6);
03 01 17
SELECT CONVERT(varchar(100), GETDATE(), 7);
01 03, 17
SELECT CONVERT(varchar(100), GETDATE(), 8);
09:09:10
SELECT CONVERT(varchar(100), GETDATE(), 9);
01 3 2017 9:09:10:037AM
SELECT CONVERT(varchar(100), GETDATE(), 10);
01-03-17
SELECT CONVERT(varchar(100), GETDATE(), 11);
17/01/03
SELECT CONVERT(varchar(100), GETDATE(), 12);
170103
SELECT CONVERT(varchar(100), GETDATE(), 13);
03 01 2017 09:09:10:037
SELECT CONVERT(varchar(100), GETDATE(), 14);
09:09:10:037
SELECT CONVERT(varchar(100), GETDATE(), 20);
2017-01-03 09:09:10
SELECT CONVERT(varchar(100), GETDATE(), 21);
2017-01-03 09:09:10.037
SELECT CONVERT(varchar(100), GETDATE(), 22);
01/03/17 9:09:10 AM
SELECT CONVERT(varchar(100), GETDATE(), 23);
2017-01-03
SELECT CONVERT(varchar(100), GETDATE(), 24);
09:09:10
SELECT CONVERT(varchar(100), GETDATE(), 25);
2017-01-03 09:09:10.037
SELECT CONVERT(varchar(100), GETDATE(), 100);
01 3 2017 9:09AM
SELECT CONVERT(varchar(100), GETDATE(), 101);
01/03/2017
SELECT CONVERT(varchar(100), GETDATE(), 102);
2017.01.03
SELECT CONVERT(varchar(100), GETDATE(), 103);
03/01/2017
SELECT CONVERT(varchar(100), GETDATE(), 104);
03.01.2017
SELECT CONVERT(varchar(100), GETDATE(), 105);
03-01-2017
SELECT CONVERT(varchar(100), GETDATE(), 106);
03 01 2017
SELECT CONVERT(varchar(100), GETDATE(), 107);
01 03, 2017
SELECT CONVERT(varchar(100), GETDATE(), 108);
09:09:10
SELECT CONVERT(varchar(100), GETDATE(), 109);
01 3 2017 9:09:10:037AM
SELECT CONVERT(varchar(100), GETDATE(), 110);
01-03-2017
SELECT CONVERT(varchar(100), GETDATE(), 111);
2017/01/03
SELECT CONVERT(varchar(100), GETDATE(), 112);
20170103
SELECT CONVERT(varchar(100), GETDATE(), 113);
03 01 2017 09:09:10:037
SELECT CONVERT(varchar(100), GETDATE(), 114);
09:09:10:037
SELECT CONVERT(varchar(100), GETDATE(), 120);
2017-01-03 09:09:10
SELECT CONVERT(varchar(100), GETDATE(), 121);
2017-01-03 09:09:10.037
SELECT CONVERT(varchar(100), GETDATE(), 126);
2017-01-03T09:09:10.037
SELECT CONVERT(varchar(100), GETDATE(), 130);
5 ???? ?????? 1438 9:09:10:037AM
SELECT CONVERT(varchar(100), GETDATE(), 131);
5/04/1438 9:09:10:037AM