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の最適な構成の詳細な説明

推薦する

CSS スタッキングと Z インデックスのサンプルコード

カスケードとカスケードレベルHTML 要素は 3 次元の概念です。水平方向と垂直方向に加えて、「Z ...

オーディオマニアにアピールするオーディオビジュアルLinuxディストリビューション

私は最近、多くの音楽に特化した Linux ディストリビューションの 1 つである Audiovis...

複数のサーバーにNginxリバースプロキシを実装する方法

Nginx は複数のサーバーをリバース プロキシします。つまり、nginx に異なるリクエストを送信...

Dockerでの接続例外中のエラーを解決する

Docker を初めて使い始めると、通常とは異なる問題に遭遇して、必然的に混乱してしまいます。大丈夫...

dockerコマンドの使用にはsudoは必要ありません

docker デーモンは通常の TCP ポートではなくホストの Unix ソケットにバインドする必要...

vue3 のさまざまな構文形式を比較したサンプルコード

デフォルトのテンプレートメソッドはvue2に似ており、コンポーネント内のセットアップ関数を使用します...

Ubuntu は、Mysql+Keepalived の高可用性実装 (デュアルアクティブ ホットスタンバイ) を構築します。

Mysql5.5 デュアルマシン ホットスタンバイ実装 2つのMySQLをインストールするMySQ...

OCSP を有効にすると、https 証明書の検証効率が向上し、Let's Encrypt SSL 証明書へのアクセスが遅くなる問題が解決されます。

ここ数日、ウェブサイトを初めて開いたときにアクセスが非常に遅いのですが、その後はページが正常に開きま...

IE における条件付きコメントの利点と欠点

IE の条件付きコメントは、通常の (X)HTML コメントに対する Microsoft 独自の (...

ユーザーエクスペリエンスの構築

<br />おそらく、あなたは会社に入社したばかりで、その会社が「ユーザビリティ」に関す...

データページング効果を実現する js オブジェクト

この記事の例では、データのページング効果を実現するためのjsオブジェクトの具体的なコードを参考までに...

JavaScript で円形カルーセルを実装する

この記事では、円形カルーセルを実装するためのJavaScriptの具体的なコードを参考までに紹介しま...

nginx で複数のフロントエンド プロジェクトをデプロイするいくつかの方法

nginx を使用して 1 つのサーバーに複数のフロントエンド プロジェクトをデプロイする 3 つの...

基本的なウェブページパフォーマンス最適化ルールの簡単な概要

ブラウザのウェブページを最適化するためのいくつかのルールページの最適化静的リソース圧縮ビルド ツール...