[解決済み] 式をデータ型datetimeに変換する際に算術オーバーフローエラーが発生する。(日付と時刻の表示中に...)
2022-02-13 22:32:43
質問
実行中に以下のエラーが表示されます。
declare @yr_mnth_dt as numeric;
set @yr_mnth_dt = 20130822;
select convert(datetime,@yr_mnth_dt,112) as YR_MNTH_DT
エラーが表示されます
Arithmetic overflow error converting expression to data type datetime.
解決方法は?
あなたの問題は、あなたが以下のことをしようとしていることです。
convert
を、数値から
datetime
ということで、これはうまくいきません。
にする必要があります。
numeric
を文字列に変換してください。
declare @yr_mnth_dt as numeric;
set @yr_mnth_dt = 20130822;
select yr_mnth_dt = cast(cast(@yr_mnth_dt as char(8)) as datetime);
数値型に変換しようとすると
datetime
SQL Server は、数値を日数として日付に追加しようとします。
01-Jan-1900
. あなたの場合、これは数百万日を追加しようとしているため、オーバーフローエラーが発生します。
CONVERT
も問題なく動作します。
select yr_mnth_dt = convert(datetime, convert(char(8), @yr_mnth_dt));
関連
-
[解決済み】各GROUP BY式は、外部参照でない列を少なくとも1つ含む必要があります。
-
[解決済み】SQL Server データベース復元エラー:指定されたキャストは有効ではありません。(SqlManagerUI)
-
[解決済み] プロシージャは 'ntext/nchar/nvarchar' 型のパラメータ '@statement' を想定しています。
-
[解決済み] SSIS - データ損失の可能性があるため、値を変換することはできません。
-
[解決済み] SSRS 2つ目の文字列の前にある文字列から部分文字列を抽出する
-
[解決済み] ミリタリータイムを使用するDatetimeフィールド - 標準時間のみが必要です。
-
[解決済み] UPDATEエラーです。"REPLACEの引数1の引数データ型textは無効です"
-
[解決済み] SQL ServerでBegin / End BlocksとGoキーワードを使用する?
-
[解決済み] SQL ServerにおけるXOR
-
[解決済み] SQL Serverは、ビュークエリでLEFT JOINをLEFT OUTER JOINに置き換えます。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] データベースのトランザクションログが満杯です。ログの領域が再利用できない理由を調べるには、sys.databases の log_reuse_wait_desc カラムを参照してください。
-
[解決済み] SQL Server データベース復元エラー: 指定されたキャストは無効です。(SqlManagerUI)
-
[解決済み] 分散型トランザクションを開始できない
-
[解決済み] データ損失の可能性があるため、スキーマの更新を終了します。
-
[解決済み] SSRS 2つ目の文字列の前にある文字列から部分文字列を抽出する
-
[解決済み] EF: テキストデータ型は比較できないため、DISTINCT として選択できません。
-
[解決済み] SSISの日付と時刻の連結
-
[解決済み] SQL Server の .sql ファイルとは何ですか?
-
[解決済み] 文字列から特定の文字を削除する
-
[解決済み] SQL Server : varchar を INT に変換する。