MySQLで範囲外の日付を挿入するとどうなる?SQLモード別の挙動を解説
MySQLが範囲外の日付に遭遇したときの挙動
MySQLが範囲外の日付や無効な日付に遭遇した場合の挙動は、SQLモードの設定によって異なります。ALLOW_INVALID_DATESモードを有効にしている場合、MySQLは範囲外の値をすべてゼロ('0000-00-00 00:00:00')に変換し、エラーや警告を発生させることなくそのままテーブルに格納します。
ALLOW_INVALID_DATESモードでの動作例
実際に、以下のようにSQLモードを変更してから、範囲外の日付を挿入してみましょう。
mysql> set sql_mode = 'ALLOW_INVALID_DATES';
Query OK, 0 rows affected (0.00 sec)
mysql> Insert into order1234(productname, quantity, orderdate) values('A', 500, '999-05-100');
Query OK, 1 row affected, 1 warning (0.13 sec)
mysql> Select * from order1234;
+-------------+----------+---------------+
| ProductName | Quantity | OrderDate |
+-------------+----------+---------------+
| A | 500 | 0000-00-00 |
+-------------+----------+---------------+
1 row in set (0.00 sec)この結果から、MySQLが範囲外の値をすべてゼロに変換して格納していることが確認できます。
厳格モード(STRICTモード)の場合との違い
一方、STRICT_TRANS_TABLESなどの厳格モードが有効な場合は挙動が異なります。この場合、範囲外の日付を挿入しようとするとエラーが発生し、データはテーブルに登録されません。現在のMySQLではデフォルトで厳格モードが有効になっているため、無効な日付は基本的に拒否される点に注意が必要です。
このように、日付データの妥当性チェックはSQLモードの設定に大きく依存するため、運用環境では意図したモードが設定されているかを事前に確認しておくことが重要です。
-
WhatsAppをアンインストールするとどうなる?アカウント削除との違いを徹底解説
WhatsAppをアンインストールすると、実際に何が起こるのか考えたことはありますか?誤って削除してしまった場合でも、何らかの理由で意図的に消す場合でも、アンインストールした瞬間にアプリはスマホから姿を消します。連絡先のリストにはあなたの名前が残ったままですが、メッセージは届かなくなります。音声通話もビデオ通話も、さらにはグループ通話でさえも、あなたの端末にはつながりません。第1部:アカウント削除とアンインストールの違いヘビーユーザーであれば、「アプリを消して静かな時間を取り戻したらどうなるだろう」と思ったことがあるはずです。昨今のSNSアプリは通知が絶えず鳴り響き、非常に煩わしいものです。テ
-
Skypeが遅い・重いときの原因と対処法を徹底解説
Skypeは今や世界中で利用されている定番のコミュニケーションツールです。Webベースの通信プラットフォームが数多く登場しているにもかかわらず、Skypeはリモートワーカーの多くにとって依然として第一の選択肢であり続けています。その理由は、シンプルで使いやすい操作性にあります。 しかし、どんなアプリにもトラブルはつきものです。「Skypeが遅い」という問題も、このプラットフォームで起こりうる典型的なトラブルの一つです。 通話中に相手の映像が突然消えてしまったり、Skypeがフリーズして奇妙な音声や映像が流れたりすることもあります。頻繁に利用している方なら、ビデオ通話で相手の画面が乱れる様子を目