2011-12-26 81 views
0

表:如何更改日期格式

Dates (nvarchar) 
== 
23/02/2009 (dd/mm/yyyy) 
24/02/2009 
25/08/2009 
28/12/2011 
.... 

我想更改日期的形式是這樣的(年月日)

試圖查詢

select cast(dates as datetime) from table1 

顯示錯誤

ЮArithemetic表達式溢出

select Convert(char(10), dates, 112) from table1 

顯示相同的值23/02/2009

上述查詢不工作。

期望輸出

20090232 
20090224 
20090825 
20111228 
... 

怎樣進行查詢?

+2

如果這些是**日期**-ö然後**爲什麼**是否將它們存儲爲'varchar'? –

回答

1

由於這些被存儲爲字符串數據,那麼你可能也僅僅使用字符串函數給你想要的東西。

首先給你一個有效日期

select 
    cast(SUBSTRING(dates,4,2) + '/' + left(dates,2) + '/' + right(dates,4) as datetime) NowItsADateTime 
from DateTable 

第二,你問什麼。

select right(dates,4) + SUBSTRING(dates,4,2) + left(dates,2) as YYYYMMDD 
from DateTable 
1

試試這個簡單的查詢:

SELECT DATEPART(yyyy,dates)+DATEPART(m,dates)+DATEPART(d,dates) FROM table1 

你可以得到這個鏈接的詳細信息: sql-server-dates