質問: ### 前提・実現したいこと Oracle SQL 11gを使用しています。 USERS_TABLE ・ID VARCHAR2(20) //PRIMARY KEY ・BIRTHDAY DATE ### 発生している問題・エラーメッセージ このBIRTHDYキーを基準にしてソート(昇順)で取り出す時の動作の詳細がわかりません。 仮にそれぞれ | ID | BIRTHDAY | | --- | --- | | 1 | 90-12-03 | | 2 | 15-01-03 | | 3 | 95-08-13 | というデータが格納されていた場合、 SELECT * FROM USERS_TABLE ORDER BY BIRTHDAY ASC; とした時、表示される結果は | ID | BIRTHDAY | | --- | --- | | 1 | 90-12-03 | | 3 | 95-08-13 | | 2 | 15-01-03 | でした。 この場合は、90を1990、15を2015等と認識してソートしているのでしょうか。 ※おそらく19XX年,20XX年というのも明確に内部で設定されていないのでしょうが、便宜上そう書かせてください。 日付を格納する段階で、上2桁を省略した場合、100年以内のデータと認識されて上記のようになるのでしょうか。 詳細な調べ方が思いつかないので質問させてください。 よろしくお願いします。
回答: OracleのDate型は「yyyy-mm-dd hh:mi:ss」という精度で情報を持っています。 「90-12-03」というのは表示形式が「yy-mm-dd」になっているだけであって、実際に保持している情報精度は別物です。