趣味でSQLiteの勉強をしています。ふわっとした質問になります…。
SQLiteにはdatetimeはないみたいですが、 yyyy-mm-dd
のかたちで日付のデータを格納してみました。
ところで、レコードによっては年だけしかわからないみたいなのもありました。
そういうレコードが混ざるようなとき、 yyyy-NA-NA
みたいなかたちでデータを格納することは可能でしょうか?
一般的にはどういう風にやるものですか?
◆考えたこと1
年月日でそれぞれカラムをわける。
year、month、dayのINTEGER型のカラムをつくって、レコードによってはmonthとかdayとかだけNULLになったりする。
◆考えたこと2
カラムはひとつにまとめて、不明なやつはゼロとかにしておく。
年だけわかるなら 2018-00-00
とかにする。
1でも2でも、どちらのやりかたでもレコードを日付順に並べたり、特定の期間だけをSELECTしたりはできそう。
1だと自力で日付を生成しないといけないの面倒そう…。
2だと00日とか存在しないので関数とかで予期しないエラーが起きたりするかも…?
わたしが使う場合、SQLからデータを呼ぶほかに、PythonでSQLを操作することを考えているので、
Python側できれいに解決することを前提にデータベースを作るのでもいいと思っています。
ときどきWebサービスとかでこういうのがあると思いますが
(ブクログがそうかと思って確認したんですが勘違いでした…どこだったんだろう…)、
一般的にこういう場合には内部でどのようにデータを持っているのでしょうか?

回答5件
あなたの回答
tips
プレビュー