1. ホーム

sql server の int から datetime への変換

2022-02-19 13:47:29

私は最近、SQLサーバーデータベースのテーブル操作で次の問題が発生しました:テーブルAのs_dateフィールドはint型(20130901)、テーブルBのs_dateフィールドはdatetime型(2013-09-01)、テーブルAとテーブルBのs_dateのサイズを比較してみてください。

エラー方法:テーブルAのs_dateのint型がdatetime型であることを捕捉する。CONVERT(varchar(10),CAST(s_date AS datetime),120)  

報告されたエラー 式をデータ型 datetime に変換する際に算術オーバーフローエラーが発生しました。

理由 データベースに DateTime 型を挿入する際に発生する最も一般的なエラーの 1 つが "SqlDateTime のオーバーフローです。Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM" DateTime.MinValue の値を取ってデータベースに挿入すると、その DateTime.MinValue の範囲が狭くなるからです。MinValueの値の範囲とデータベースのDateTime型のデータ範囲が一致しないためです。データベース、DateTime型フィールド、MinValue 1/1/1753 12:00:00

正しい方法:まずintをvarcharに、次にdatetimeに、CONVERT(varchar(10),CAST(CAST(s_date AS varchar)AS datetime),120)