一、日期转字符串
1.1 yyyy/mm/dd 日期格式
select convert(varchar(100),getdate(),111) as 日期
查询结果
2022/12/07
1.2 yyyy-mm-dd 日期格式
select convert(varchar(100),getdate(),23) as 日期
查询结果
2022-12-07
1.3 yyyymmdd 日期格式
select convert(varchar(100),getdate(),112) as 日期 -- 自动生成单据号的时期可以使用这个
查询结果
20221207
1.4 yyyy-mm-dd hh:mm:ss 日期格式
select convert(varchar(100),getdate(),120) as 日期
查询结果
2022-12-07 09:56:29
1.5 yyyy年mm月dd日 日期格式 使用手动拼接方式
select
convert(varchar,DATEPART(yy,GETDATE())) + '年'
+ convert(varchar,DATEPART(mm,GETDATE())) + '月'
+ convert(varchar,DATEPART(dd,GETDATE())) + '日' as 日期
查询结果
2022年12月7日
二、字符串转日期
2.1 CAST('字符串日期' as '数据类型-一般为date或者datetime') 如果字符串日期并不是合法的日期,会报错。
方式一:DATETIME
select CAST('20221207' as datetime) as 日期
查询结果
2022-12-07 00:00:00.000
方式二:DATE
select CAST('20221207' as date) as 日期
查询结果
2022-12-07
2.2 TRY_CAST('字符串日期' as '数据类型-一般为date或者datetime') 尝试将字符串日期转换为日期类型,如果转换失败的话,会返回 NULL
方式一:DATETIME
有具体时间
select TRY_CAST('20221207' as datetime) as 日期
查询结果
2022-12-07 00:00:00.000
没有具体时间
select TRY_CAST('2022/12/07 10:20:55' as datetime) as 日期
查询结果
2022-12-07 10:20:55.000
方式二:DATE
select TRY_CAST('20221207' as date) as 日期
查询结果
2022-12-07 10:20:55.000
select TRY_CAST('2022/12/07 10:20:55' as date) as 日期
查询结果
2022-12-07