我在DateTime會話中遇到問題。 我的輸入是2011年9月22日,我需要轉換爲20110922.在Sql Server 2005中需要DateTime轉換幫助
我試過下面的一個,但失敗了。 選擇Convert(VARCHAR(8), '2011年9月22日',112)作爲DateConv
我在DateTime會話中遇到問題。 我的輸入是2011年9月22日,我需要轉換爲20110922.在Sql Server 2005中需要DateTime轉換幫助
我試過下面的一個,但失敗了。 選擇Convert(VARCHAR(8), '2011年9月22日',112)作爲DateConv
在這裏你去:
SET DATEFORMAT mdy
SELECT CONVERT(VARCHAR(8), CAST('09/22/2011' as DATETIME) , 112) AS DateConv
如果輸入實際上是一個DateTime變量像你說的(但沒在你的代碼示例「T顯示),可以簡化這歸因於:
SELECT CONVERT(VARCHAR(8), @myDate , 112) AS DateConv
這將這樣的伎倆:
select year('09/22/2011') * 10000 + month('09/22/2011') * 100 + day('09/22/2011')
沒有任何其他信息,SQL已經將'09/22/2011'解釋爲varchar,只是將數據傳遞過去(忽略CONVERT
的樣式參數)。如果您使用以下行:
SELECT CONVERT (VARCHAR (8), CAST ('09/22/2011' as DATETIME), 112) as DateConv
它應該按預期工作,因爲它會查看'09/22/2011'作爲日期值。如果您從表格中的列中獲取日期,它將已知該類型,並且您不需要擔心表達式的部分,只需使用列名即可。
你的輸入格式看起來像一個字符串而不是'datetime'? –
不,它只是一個日期時間.. – Naveenkumar