将dd / mm / yy字符串转换为yyyy-mm-dd

时间:2013-01-21 19:34:13

标签: sql sql-server

我在将dd/mm/yy hh:mi:ss格式的字符串转换为yyyy-mm-dd hh:mi:ss格式时遇到问题。

我尝试使用CONVERT(),如下所示:

select CONVERT(VARCHAR, '11/10/11 10:56:58', 120)

但是没有变化:

11/10/11 10:56:58

3 个答案:

答案 0 :(得分:8)

您需要先转换为datetime才能更改字符串以反映某种区域格式。确保您正确地解释日期时间值;在某些系统上,这将是10月11日,在其他系统上将是11月10日。

SELECT CONVERT(CHAR(19), CONVERT(DATETIME, '11/10/11 10:56:58', 3), 120);

最后,在charvarchar声明中使用正确数量的字符。不指定长度是懒惰的并且可能导致问题。参见:

答案 1 :(得分:4)

这将有效:

SELECT CONVERT(VARCHAR(19),CONVERT(DATETIME,'11/10/11 10:56:58',3),120)

答案 2 :(得分:1)

问题:您正在将VARCHAR转换为VARCHAR。

如果您使用DATETIME,您的查询就可以了。

SELECT CONVERT(VARCHAR(19), CAST('11/10/11 10:56:58' AS DATETIME), 120);

请参阅fiddle