我在SQL Server的varchar中存储的日期为'19 -09-2020',我想将其转换为'2020-09-19'

时间:2020-09-19 08:10:13

标签: sql sql-server string datetime

我在SQL Server的varchar列中存储的日期为'19 -09-2020'。

我想将其转换为“ 2020-09-19”。

我已经尝试过了,但是没有用:

select convert(varchar, '19-09-2020', 23)

2 个答案:

答案 0 :(得分:3)

您必须指定转换的源格式:

 convert(date, '19-09-2020',105)

如果您实际上确实想要VarChar(当然不应该),则会得到一个DATE:

convert(varchar(10), convert(date, '19-09-2020',105), 23)

答案 1 :(得分:1)

您想要字符串函数吗?

select concat_ws('-', right(mycol, 4), substring(mycol, 4, 2), left(mycol, 2))
from mytable

另一方面,如果要从该字符串生成一个date,则:

select convert(date, mycol, 105) 
from mytable