2017-02-14 4 views
-1

Dateptbv varchar(50)[Column 1] varchar(50)という2つの列を持つテーブルPTBVがあります。フォーマットdd/mm/yyの文字列をSQL Server 2008のdatetimeに変換するにはどうすればよいですか?

CONVERT()関数を使用して、Dateptbv列に格納されている文字列データから実際のdatetime値を取得しようとしています。このサンプルで引用符は、データの一部であり、列に格納されていること

 
"10/01/13" 
"11/01/13" 
"14/01/13" 
"15/01/13" 
"16/01/13" 
"17/01/13" 
"18/01/13" 
"21/01/13" 
"22/01/13" 
"24/01/13" 
"25/01/13" 
"28/01/13" 
"29/01/13" 
"30/01/13" 
"01/02/13" 
"04/02/13" 

ここでその列のデータの例です。それ以外の場合は、データはdd/mm/yy形式で格納されます。

残念ながら、私が試したすべての日付スタイルは、エラーメッセージを表示しています。このデータをDateTime値に変換するにはどうすればよいですか?

+0

以下のスクリプトを試してみてください、あなたはMySQLやMS SQL Serverを使用していますか? (含まれていない製品にはタグを付けないでください) – jarlh

+0

MS SQL!私は次回にはしません。アドバイスありがとうございます –

+0

イメージには既に日付形式ですか?実際にあなたが望むもの。ここに予想される出力を追加してください。 –

答えて

1

あなたの写真が正しく理解されている場合、Dateptbvの列はVARCHAR(50)で、yy/mm/ddという文字列が"にラップされています。まず第一に:これを可能なら変更してください!。適切に型付けされた列に値を格納しようとしてください!

CONVERTの能力についての詳細を見つけるために

SELECT CONVERT(DATE,SUBSTRING(Dateptbv,2,8)),3) --3 for dd/mm/yy 

読むthis link

を試してみてください。

+0

sqlfiddle:http://sqlfiddle.com/#!3/b3eb18/4 –

0

SELECT CAST(SUBSTRING(Dateptbv,2,8) AS DATE) 
FROM PTBV 
+0

メッセージ241、レベル16、状態1、行2μ 文字列から日付および/または時刻を変換すると変換に失敗しました。 –

+0

これは文化に依存し、したがって危険です。日付や時刻の値が含まれている場合、暗黙のキャストに依存することは絶対にありません。 – Shnugo

+0

@RobinHocepiedあなたのシステムは、おそらく、デフォルトでは異なるフォーマットを期待しています。それはまさに私のコメントで意味したものです... – Shnugo

関連する問題