2011-08-01 17 views
1

當我有麻煩在MySQL轉換/編輯日期,可能是最簡單的,如果我告訴我的問題設置VS選擇給出不同的結果:SQL中使用日期/炭

輸入:

declare @from_dattim2 datetime 

set @from_dattim2 = (select dateadd(day,-30,'2011-07-18')) 

print @from_dattim2 

OUTPUT:

Jun 18 2011 12:00AM 

這是有道理的,那麼......

輸入:

declare @from_dattim2 datetime 

set @from_dattim2 = (select dateadd(day,-30,'2011-07-18')) 

print @from_dattim2 

select convert (datetime, @from_dattim2, 121) 

OUTPUT:

2011-06-18 00:00:00.000 

但是,這是我想要的輸出似乎它不工作時,我嘗試設置我的變量:

輸入:

declare @from_dattim2 datetime 

set @from_dattim2 = (select dateadd(day,-30,'2011-07-18')) 

set @from_dattim2 = convert (datetime, @from_dattim2, 121) 

OUTPUT:

Jun 18 2011 12:00AM 

任何想法如何設置我的變量格式爲yyyy-mm-dd等而不是Jun 18等?

回答

1

轉換不會導致以不同的方式存儲日期時間。它僅影響輸出時的格式。

所以你只需要將它作爲日期時間存儲起來,當你選擇數據的時候,當你將convert()轉換爲所需的格式時。

+0

阿哈我看,這很有道理!唯一的問題是,我希望它作爲一個變量,以便以後可以多次引用它。這顯然是可能的,但很長時間。任何閃爍的想法? - 謝謝您的幫助! – chris

+0

你可以嘗試在你的表上創建一個視圖,而不是日期列,你可以使用'convert(...)as date'。或者,您可以創建一個函數'fnFormattedDate'並讓它將日期轉換爲您所需格式的varchar。 –

+0

我擔心它會變得更長,因爲我需要說服幾個人,讓我在生產環境中創建視圖或功能是一個好主意,因爲我使用每天晚上刷新一天的舊副本。認爲我可能會去參考每個參考,因爲它似乎是最簡單的方法。非常感謝您的幫助 - 這是一個方便的人知道! – chris