2011-12-26 7 views
0

表:日付形式を変更する方法

私はこのような日付形式を変更したい
Dates (nvarchar) 
== 
23/02/2009 (dd/mm/yyyy) 
24/02/2009 
25/08/2009 
28/12/2011 
.... 

(YYYYMMDD)

しようとしたクエリ表示

select cast(dates as datetime) from table1 

エラー

ЮArithemetic式のオーバーフロー

上記のクエリが動作していない23/02/2009

同じ値を表示

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

出力

20090232 
20090224 
20090825 
20111228 
... 

がどのようにクエリを作るために期待?

+2

それらの場合**日付** - 次に** WHY **は '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

この単純なクエリ試してみてください:このリンクで見てください sql-server-dates

関連する問題