MySQLで日付を比較する方法の詳細な説明

MySQLで日付を比較する方法の詳細な説明

データ型が datetime であるフィールド add_time を持つテーブル product がある場合、次のような SQL を記述する人がいます。

コードは次のとおりです

add_time = '2013-01-12' の製品から * を選択

このステートメントでは、保存する形式が YY-mm-dd であれば問題ありません。保存する形式が 2013-01-12 23:23:56 の場合は問題があります。これは、DATE() 関数を使用して日付を返すことができる部分なので、この SQL は次のように処理する必要があります。

コードは次のとおりです

Date(add_time) = '2013-01-12' の製品から * を選択します

もう 1 つ、2013 年 1 月に追加された製品を照会したい場合はどうすればよいでしょうか。

コードは次のとおりです

'2013-01-01' から '2013-01-31' までの date(add_time) の製品から * を選択します。

次のように書くこともできます:

Year(add_time) = 2013 かつ Month(add_time) = 1 の場合、製品から * を選択します。

これで、日付比較の問題に対処する際の MySQL 日付関数の役割がわかったと思います。

date_col 値が過去 30 日以内である:

コードは次のとおりです

mysql> テーブルから何かを選択する 
 TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30 の場合;
曜日(日付)

日付の曜日インデックスを返します (1=日曜日、2=月曜日、... 7=土曜日)。これらのインデックス値は ODBC 標準に対応しています。

コードは次のとおりです

mysql> DAYOFWEEK('1998-02-03') を選択します。 
 -> 3 
曜日(日付)

日付の曜日インデックスを返します (0=月曜日、1=火曜日、... 6=日曜日)。

コードは次のとおりです

mysql> WEEKDAY('1997-10-04 22:23:00') を選択します。 
 -> 5 
 mysql> WEEKDAY('1997-11-05') を選択します。 
 -> 2 
DAYOFMONTH(日付)

日付の月の日を 1 から 31 の範囲で返します。

コードは次のとおりです

mysql> DAYOFMONTH('1998-02-03') を選択します。 
 -> 3 
DAYOFYEAR(日付)

日付の年間通算日を 1 から 366 の範囲で返します。

コードは次のとおりです

mysql> DAYOFYEAR('1998-02-03') を選択します。 
 -> 34 
月(日付)

1 から 12 までの範囲で日付の月を返します。

コードは次のとおりです

mysql> MONTH('1998-02-03') を選択します。 
 -> 2 
DAYNAME(日付)

日付の曜日を返します。

コードは次のとおりです

mysql> DAYNAME("1998-02-05") を選択します。 
 -> '木曜日' 
月名(日付)

日付内の月の名前を返します。

コードは次のとおりです

mysql> MONTHNAME("1998-02-05") を選択します。 
 -> '2月' 
四半期(日付)

日付の四半期を 1 ~ 4 の範囲で返します。

コードは次のとおりです

mysql> QUARTER('98-04-01') を選択します。 
 -> 2

MySQL についてより詳細かつ体系的に学習したい場合は、古典的な書籍「MySQL King's Road to Promotion」を参照してください。

要約する

上記は、私が紹介したMySQLでの日付比較方法です。お役に立てれば幸いです。ご質問があれば、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL で誕生日から年齢を計算する複数の方法
  • MySQL の日付データ型と時刻型の使用法の概要
  • MySQL の日付関数と日付変換およびフォーマット関数
  • MySQL の日付と時刻の形式変換の実装ステートメント
  • 現在の日付と形式を取得するためのmysqlの詳細な説明
  • MySqlはDATE_FORMATを使用してDateTimeフィールドの日付値をインターセプトします。
  • Mysql 日付時刻 DATE_FORMAT (日付、形式)
  • MySql 日付クエリステートメントの詳細な説明
  • 生年月日を年齢に変換し、グループ化して人数を数えるMySQLの例

<<:  TypeScript 3.7 で注目すべき 3 つの新機能について簡単に説明します。

>>:  セキュリティとパフォーマンスを向上させるためのNginxの最適な構成の詳細な説明

推薦する

CSS3を使用して背景画像の色を変更するさまざまな方法

CSS3 では画像の色を変更できます。これからは複数の絵をデザインする必要がなくなり、いつでも修正で...

nginxを使用して画像サイズを動的に変換し、サムネイルを生成します。

Nginx ngx_http_image_filter_module モジュール (nginx バ...

HTML ドキュメントに CSS を埋め込む一般的な 3 つの方法

HTMLでCSSを定義するには、埋め込み、リンク、インラインの3つの方法が一般的に使用されます。 1...

CSS3 で transform を使用した場合のフォントぼかしの解決方法の詳細な説明

この質問は非常に奇妙なので、あまり多くを語らずにコードに直接進みます。 .g-ダイアログラッパー{ ...

CSS における @ の使用法の概要 (例と説明付き)

@ ルールは、CSS の実行または動作に関する指示を提供する宣言です。各宣言は @ で始まり、その...

Vue 2.0 の基礎を詳しく解説

目次1. 特徴2. 例3. オプション4. 基本的な文法5. ライフサイクル6. ルーティング管理 ...

js 属性オブジェクトの hasOwnProperty メソッドの使用

オブジェクトの hasOwnProperty() メソッドは、オブジェクトに特定の独自の (継承され...

JSで実施された機雷掃海プロジェクトの概要

この記事では、JS掃海プロジェクトの概要を参考までに紹介します。具体的な内容は次のとおりです。プロジ...

Vueはフィルターを使用して日付をフォーマットします

この記事では、フィルターを使用して日付をフォーマットするVueの具体的なコードを参考までに紹介します...

vue-tableは追加と削除を実装します

この記事では、vue-table の追加と削除の具体的なコードを参考までに紹介します。具体的な内容は...

MySql 8.0.11 のインストール プロセスと Navicat とのリンク時に発生する問題の概要

私のシステムとソフトウェアのバージョンは次のとおりです。システム環境: win7、64ビットMySQ...

シンプルなショッピングカート機能を実現するjs

この記事の例では、簡単なショッピングカート機能を実現するためのjsの具体的なコードを参考までに共有し...

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

MySQLインデックスとは何ですか?わからない場合は聞いてください

目次概要二分木からB+木へクラスター化インデックス非クラスター化インデックスジョイントインデックスと...