如果SELECT GETDATE()
生成2014-09-05 11:06:38.927
而SELECT 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
}?
答案 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)