1. ホーム
  2. データベース
  3. マイサク

mysqlにおけるvarcharの日付比較とソートの実装

2022-01-06 23:34:34

mysqlでは、日付は通常datetimeやtimestampなどの形式で保存されますが、特別なニーズや歴史的な理由により、日付がvarchar形式で保存されることがあります。このvarchar形式の日付データはどのように扱えばいいのでしょうか?

関数を使用します。STR_TO_DATE(str、format)を使用します。

STR_TO_DATE(str, format)関数は、DATE_FORMAT()関数の逆関数です。この関数は、文字列strとフォーマット文字列formatを受け取ります。STR_TO_DATE()は、書式文字列が日付と時刻の部分を含んでいればDATETIME値を、日付と時刻の部分のみを含んでいれば日付または時刻の値を返します。

以下に例を挙げて説明する。

例えば、今、以下のような構造の会員制テーブルを持っています。

テーブルには以下のデータを作成しました。

さて、この中から2018年8月に登録した会員をすべてピックアップして、登録時刻順に並べ替える必要がある場合、どうすればいいでしょうか。ここに参考資料が示されています。

SELECT id,nickname,createtime 
FROM member
WHERE str_to_date(createtime, '%Y-%m-%d') BETWEEN str_to_date('2018-08-01', '%Y-%m-%d') AND str_to_date('2018-08-31', '%Y-%m-%d')
ORDER BY str_to_date(createtime, '%Y-%m-%d')

実行結果は次のようになります。

まとめると STR_TO_DATE(str, format)関数は、varchar型のデータベースの日付データをDATETIME型の日付データに変換することができ、変換プロセスはformatパラメータがstrの形式に対処する必要があることに注意して、我々は比較、ソートやその他の操作ができます!この関数を使用すると、データベースの日付データをDATETIME型の日付データに変換できます。

比較、ソートおよびその他の操作のためのmysqlのvarchar型の日付の実装に関するこの記事は、このに導入され、より関連するmysqlのvarchar型の比較ソートコンテンツは、スクリプト家の以前の記事を検索するか、次の関連記事を閲覧し続けることを願ってあなたは、スクリプト家をよりサポートします!...