在Sql Server 2005中需要有关DateTime Conversion的帮助

时间:2011-09-19 23:22:12

标签: sql-server datetime

我在DateTime转换中遇到问题。 我的输入是09/22/2011,我需要转换为20110922。

我尝试了下面的一个,但失败了。 选择CONVERT(VARCHAR(8),'09/22/2011',112)作为DateConv

3 个答案:

答案 0 :(得分:3)

你走了:

SET DATEFORMAT mdy
SELECT CONVERT(VARCHAR(8), CAST('09/22/2011' as DATETIME) , 112) AS DateConv

如果您的输入实际上是一个像您所说的dateTime变量(但未在您的代码示例中显示),您可以将其简化为:

SELECT CONVERT(VARCHAR(8), @myDate  , 112) AS DateConv

答案 1 :(得分:1)

这样可以解决问题:

select year('09/22/2011') * 10000 + month('09/22/2011') * 100 + day('09/22/2011')

答案 2 :(得分:0)

没有任何其他信息,SQL正在将'09 / 22/2011'解释为varchar,只是传递数据(忽略CONVERT的样式参数)。如果您使用以下行:

SELECT CONVERT (VARCHAR (8), CAST ('09/22/2011' as DATETIME), 112) as DateConv

它应该按预期工作,因为它会将'09 / 22/2011'视为日期值。如果您从表中的列中获取日期,它就已经知道了类型,您不必担心表达式的CAST部分,只需使用列名。