我有一個日期,其格式爲"mm/yyyy"
,其數據類型爲varchar。如何將「mm/yyyy」varchar轉換爲datetime?
我想日期"mm/dd/yyyy"
格式
如:存儲在數據庫中4/2013
我想
30/4/2013
我有一個日期,其格式爲"mm/yyyy"
,其數據類型爲varchar。如何將「mm/yyyy」varchar轉換爲datetime?
我想日期"mm/dd/yyyy"
格式
如:存儲在數據庫中4/2013
我想
30/4/2013
DECLARE @d VARCHAR(32) = '4/2013';
-- as a datetime
SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,
CONVERT(DATETIME,'1/'[email protected],103)));
-- as a date
SELECT CONVERT(DATE, DATEADD(DAY,-1,DATEADD(MONTH,1,
CONVERT(DATETIME,'1/'[email protected],103))));
-- as an ambiguously formatted regional string
SELECT CONVERT(CHAR(10), DATEADD(DAY,-1,DATEADD(MONTH,1,
CONVERT(DATETIME,'1/'[email protected],103))),103);
是惱人的?好!首先以正確的方式存儲日期。並且不要將數據庫視爲以特定格式存儲/呈現日期的地方 - 必要時在客戶端進行格式設置,而且除非受衆人數非常有限,否則通常採用區域格式是一個壞主意。
CONVERT(CHAR(10),DATEADD(DAY,-1,DATEADD(MONTH,1,CONVERT(DATETIME,'1 /'+ @ d,103)),103)是工作,在上面的小變化,我糾正它,請檢討它謝謝 – Girish 2013-04-06 12:56:10
對不起,在我的iPad上鍵入,不知道'1'去了哪裏。 – 2013-04-06 13:03:54
哪裏'dd'部分去了..? – 2013-04-06 05:52:31
那麼你想要一個月的最後一天?你想輸出作爲一個日期或作爲一個不明確格式的區域字符串?你不能擁有兩個。 – 2013-04-06 11:30:23
我希望月份的最後一個日期作爲日期 – Girish 2013-04-06 12:52:04