ユーさんは見た!#5 デートじゃなくてdate
気づけば今年(2022年)ももう11月、あと2ヶ月を切っています・・・。
早いですよね~~~
さて、そんな11月の祝日といえば、「文化の日」(11月3日)や「勤労感謝の日」(11月23日)がありますね!
・・・さっき11月3日と書きましたが、
令和4年11月3日と書くこともできますし、
2022/11/3や2022-11-3と書くこともできますね。いろんな書き方があります。
昨今、様々なデータを蓄積するデータベース(DB)がありますが、このままでは日付のデータをデータベースの中に追加したい場合に、どのような形式で記載すれば良いのか困ってしまいます。
今回はそんな、データベースにおける日付のデータの追加方法について、見ていきたいと思います。
概要
・様々なデータベース
・日付の様々なデータ型
・日付のデータを追加しようとすると・・・
様々なデータベース
使用されることが多いであろうデータベースとしては、例えば下記のような製品・サービスがあります。
ここには10個、A→Zの順にして記載してみました。
・Amazon RDS
・FileMaker
・IndexedDB
・Microsoft Access
・Microsoft SQL Server
・MongoDB
・MySQL
・Oracle Database
・PostgreSQL
・SQLite
日付の様々なデータ型
日付の情報を扱うデータ型としては、例えば下記のようなデータ型が挙げられます。
・date型
・time型
・timestamp型
・datetime型
日付のデータを追加しようとすると・・・
今回は、MySQLとOracle Databaseのデータベースにそれぞれ「date型」で、日付のデータを追加してみる場合を想定します。
例えば、データベースの中にこんなテーブルがあったとしましょう!(イメージです)
u_san_infoテーブル
id | favorite_item | create_at | update_at |
---|---|---|---|
1 | pasta | 2022-11-03 | 2022-11-03 |
※今回は、追加(INSERT)時に日付を明記して、create_at カラムとupdate_at カラムのそれぞれに日付のデータを追加する形式とします。
◎MySQLで追加する場合
INSERT INTO u_san_info VALUES (2, ‘ramen’, ‘2022-11-04’, ‘2022-11-04’);
◎Oracle Databaseで追加する場合
INSERT INTO u_san_info VALUES (2, ‘ramen’, TO_DATE('22-11-04 00:00:00', 'YY-MM-DD HH24:MI:SS'), TO_DATE('22-11-04 00:00:00', 'YY-MM-DD HH24:MI:SS'));
お気づきでしょうか。
Oracle Databaseで日付のデータをDATE型で追加する場合、やけに長くなっていますね・・・。
Oracle Databaseの場合は、「‘2022-11-04’」という書き方でデータを追加しようとするとエラーになってしまうため、「TO_DATE()」を付ける必要があります。
上で記載した「’YY-MM-DD HH24:MI:SS’」では、フォーマット(書式)を指定しています。
そして、上記のようにINSERT文を用いてデータを追加すると、u_san_infoテーブルは下記のようになりました!
u_san_infoテーブル(データ追加後)
id | favorite_item | create_at | update_at |
---|---|---|---|
1 | pasta | 2022-11-03 | 2022-11-03 |
2 | ramen | 2022-11-04 | 2022-11-04 |
無事にデータを追加できたようで良かったです。
-------------------------------------
今回は、データベースにおける日付のデータの追加方法について見ていきました。
同じ日付でも、データベースによって、追加方法が異なることがあるのですね・・・。
データベースでデータを扱う際は、そういった点も注意が必要ですね。
ここまでご覧くださり、ありがとうございました!
弊社では様々なブログを展開していますので、ぜひ他の記事もご覧ください!
「ユーさんは見た!」次回もお楽しみに♪