[解決済み] SQLでは、日付カラムをdatetimeにキャストすることができないのですか?
2022-02-14 16:32:31
質問
Select *
from tableA
inner join tableB on tableA.id = tableB.aid
and cast(a.date AS DATETIME) = CAST('2015-08-24' AS DATETIME)
に格納されている値
tableA.date
は「2015-08-24」であり、データに問題がないことを意味します。
上記のステートメントを実行すると、次のようになります。
日付データ型から日付時刻データ型への変換で、範囲外の値が発生しました。
をキャストすることができない理由を教えてください。
date
カラムを
datetime
?
解決方法は?
その 根本原因 の問題点はこれです。
-
データ型
DATE
には、許容される値の範囲として01-01-0001
から12-31-9999
-
データ型
DATETIME
には、許容される値の範囲として01-01-1753
から12-31-9999
だから、もしあなたがたまたま
DATE
1753年以前のもの、あるいは空値やNULL値などは
DATETIME
が処理できる。
あなたは
使用停止
DATETIME
SQL Serverでは
2008
およびそれ以降のバージョン。使用方法
DATETIME2(n)
代わりに(ここで
n
は必要な秒数を表します)。
そこで、こうしてみてください。
select *
from tableA
inner join tableB on tableA.id = tableB.aid
and cast(a.date AS DATETIME2(3)) = CAST('2015-08-24' AS DATETIME2(3))
で、これでうまくいくと思います。
関連
-
[解決済み] ORA-01790: 式は、対応する式と同じデータ型でなければならないエラーが発生するケース
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] MySQLのON句の不明なカラム
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] datetimeをdateに変換するにはどうすればよいですか?
-
[解決済み] SQL Server における DateTime2 と DateTime の比較
-
[解決済み] Pythonで日付をdatetimeに変換する
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み】MySQLのDatetimeカラムにデフォルト値を設定する方法とは?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】オペランド型の衝突:intはdateと互換性がない + INSERT文はFOREIGN KEY制約と衝突した
-
[解決済み] テスト
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み] WHERE x IN (5) vs WHERE x = 5 ...なぜINを使うのか?
-
[解決済み] ORA-01779: キーが保存されていないテーブルにマップされる列を変更できません。
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] オペランド型の衝突:uniqueidentifierはintと互換性がない
-
[解決済み] MySQLのON句の不明なカラム
-
[解決済み] 時間を時間単位や10分単位でグループ化する方法
-
[解決済み] Oracle Trigger ORA-04098: トリガーが無効で、再バリデーションに失敗しました。