SQL Sever 日期和字符串互相转换

364 阅读2分钟

一、日期转字符串

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

引用文章 www.php.cn/sql/497332.…