SQL Server 2008 で mmddyyyy varchar 文字列を datetime に変換する効果的な方法
SQL Server 2008 では、日付を表す mmddyyyy 形式の文字列を datetime データ型に変換すると、変換エラーが発生することがあります。これを修正する方法は次のとおりです:
文字列の解析と変換
CONVERT 関数を直接使用して変換すると、範囲外エラーが発生して失敗する場合があります。代わりに、文字列を構成要素 (月、日、年) に手動で解析してから、日時値を構築する必要があります:
<code class="language-sql">DECLARE @Date char(8) SET @Date = '12312009' SELECT CONVERT(datetime, RIGHT(@Date, 4) + SUBSTRING(@Date, 3, 2) + LEFT(@Date, 2))</code>
例: '12312009' を DateTime に変換します
上記のメソッドを使用すると、文字列「12312009」を次のように日時値に変換できます。
<code class="language-sql">SELECT CONVERT(datetime, RIGHT('12312009', 4) + SUBSTRING('12312009', 3, 2) + LEFT('12312009', 2))</code>
出力結果
上記のクエリの出力は次のようになります:
<code>----------------------- 2009-12-31 00:00:00.000 (1 row(s) affected)</code>
変換の正確性を確保するために、コード内の文字列処理の順序が調整され、年が先頭、月が中央、日付が最後に配置されていることに注意してください。 CONVERT 関数のデフォルトの処理方法とは異なります。
以上がSQL Server 2008 で mmddyyyy Varchar 文字列を DateTime に正常に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。