我在将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
答案 0 :(得分:8)
您需要先转换为datetime才能更改字符串以反映某种区域格式。确保您正确地解释日期时间值;在某些系统上,这将是10月11日,在其他系统上将是11月10日。
SELECT CONVERT(CHAR(19), CONVERT(DATETIME, '11/10/11 10:56:58', 3), 120);
最后,在char
或varchar
声明中使用正确数量的字符。不指定长度是懒惰的并且可能导致问题。参见:
答案 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。