2012-08-01 71 views
1

我有一個查詢,得到的是一個字段在程序中的日期。這個日期必須修改10年。需要一個日期而不是日期時間在SQL Server 2005 with dateadd

我所做的查詢是

SELECT DATEADD(yy, +10, '"+thisfield.value+"') 

其中'"+thisfield.value+"'從程序來和填充像01-08-2012

查詢結果爲2022-07-31 00:00:00.000。我的問題是,我只需要2022-08-01,但格式爲01-08-2022,這樣我就可以自動填充其他字段的結果。

在SQL Server 2005中,日期函數不能使用日期時間函數,我只是不需要。

我希望這是明確的(第一次我發佈的東西)。誰能幫我?

+0

真的,您不應該首先像這樣構建您的SQL,以獲得性能和SQL注入漏洞。使用參數化查詢的正確方式。 – Bridge 2012-08-01 09:12:27

回答

0

您可以截斷結果,或使用樣式101是在格式mm/dd/yyyy的,這恰好是你想要的格式,將它轉換爲DATE

CAST(DATEADD(yy, +10, '"+thisfield.value+"') AS DATE)" 

CONVERT(VARCHAR, DATEADD(yy, +10, '"+thisfield.value+"'), 101)" 

CONVERT。請記住,您可以根據需要在應用程序中對結果進行格式化,以便進行顯示,這比從SQL Server返回字符串要好。

另請注意,您應該查看參數化查詢和/或存儲過程。

+0

感謝您的反應。第一個答案不起作用。我得到錯誤:類型DATE不是一個定義的系統類型。 – user1567962 2012-08-01 09:34:22

+0

但第二個答案是解決方案。 – user1567962 2012-08-01 09:35:02

+0

@ user1567962 - 同意。使答案更清楚。 – 2012-08-01 09:40:08

相關問題