※すでにBAが付いて質問が閉じてしまいましたが、書いていたので放流させてください:
昔のDBのテーブルやデータを見ていると"YYYYMMDD"な形式など、CHARやVARCHARなどの型を使ってもろに文字列にしていた例はありますね。DATEやDATETIMEなどのような型があってもそのままにしていたようなケースは多く見かけられました。DBのデータを覗いたときに見た目そのままに認識できるメリットはありますが、
- タイムゾーン情報が無い。UTC/GMTなのかJST+09:00なのか分からない。(例えば
"2020-05-23" だった場合、2020-05-23 00:00:00(JST) か 2020-05-23 23:59:59(JST) とみるかでUTC/GMTでの日付の認識がズレる。
- 文字列である以上、神経質に考えると日付として不正な文字列があった場合のエラーケースを考える必要がある。
DATETIMEのように内部でシリアル値をもっている(はず)の型と比べて、日付でソートをする際にも特にアドバンテージが無い。普通に考えて文字列での辞書順での比較は、DATETIMEで持っているであろう、よりプリミティブな型での比較より、遅いはず。
既に回答いただいているように日付型をもたないDBでは文字列にせざるを得ませんが、UTC/GMT、ローカル時間のどちらかに寄せるか、タイムゾーン情報を入れておく必要があると思います。