仅使用日期部分将datetime转换为varchar

时间:2014-09-05 15:22:22

标签: sql-server sql-server-2008

如果SELECT GETDATE()生成2014-09-05 11:06:38.927SELECT CONVERT(VARCHAR(50), GETDATE(), 101)生成09/05/2014,那么为什么SELECT CONVERT(VARCHAR(50), '2014-09-05 11:06:38.927', 101)生成2014-09-05 11:06:38.927而不是09/05/2014 }?

2 个答案:

答案 0 :(得分:3)

CONVERT(VARCHAR(50), GETDATE(), 101)

正在将日期时间转换为varchar

CONVERT(VARCHAR(50), '2014-09-05 11:06:38.927', 101)

将varchar转换为varchar

尝试:

CONVERT(VARCHAR(50), convert(datetime, '2014-09-05 11:06:38.927'), 101)

您应该看到与第一次查询类似的结果。

答案 1 :(得分:1)

您要转换的第三个语句中的值已经是一个字符串。如果您首先将字符串转换为日期,转换将转换该值并删除时间:

SELECT CONVERT(VARCHAR(50), CAST('2014-09-05 11:06:38.927' as DATETIME), 101)