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

推薦する

mysql5.7.22 ダウンロードプロセス図

1. 公式ウェブサイト www.mysql.com にアクセスし、ダウンロードを選択します。 2. ...

MySQL の DOS ウィンドウの文字化け問題を解決する方法

文字化けしたコードの問題は次のとおりです。 この問題の原因は非常に単純です。コマンドラインのエンコー...

CSS でショートカット プロパティを記述する際は、トラブルの順序に注意してください (落とし穴を避けるため)

ショートハンドプロパティは、複数のプロパティに同時に値を割り当てるために使用されます。たとえば、fo...

CSS3 で @media を使用して Web ページの適応を実現するためのサンプル コード

現在、コンピュータモニターの画面解像度はますます高くなる傾向にありますが、携帯電話などのモバイルデバ...

UbuntuへのDocker CEのインストール

この記事は、Ubuntu 17.10 での Docker CE のインストールを記録するために使用さ...

Dockerコンテナにvimコマンドがない問題を解決する方法

問題を見つける今日、Docker コンテナ内のファイルを変更しようとしたところ、コンテナ内に vim...

Vue は better-scroll を使用して水平スクロール方法の例を実現します

1. スクロールの実装原理better-scroll のスクロール原理は、ブラウザのネイティブスクロ...

JavaScript のガベージコレクションの仕組みの詳細な説明

目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...

Vue v-for ループを書く 7 つの方法

目次1. v-forループでは常にキーを使用する2. 特定のスコープ内でv-forループを使用する3...

携帯電話番号の歩数記録を取得するWeChatアプレット

序文最近、小さなプログラムを開発しているときに、このような問題に遭遇しました。ユーザーが認証をクリッ...

Dockerでローカルマシン(ホストマシン)にアクセスする方法

質問Docker でローカル データベースにアクセスするにはどうすればよいでしょうか? 127.0....

Vue で手ぶれ補正を実装するためのサンプルコード

手ぶれ防止: 繰り返しのクリックによるイベントのトリガーを防止まず、揺れとは何でしょうか? 震えるの...

HTML+SassはHambergurMenu(ハンバーガーメニュー)を実装します

先日、外国人の方がHTML+CSSを使ってHamburgerMenuを実装している動画を見ました。最...

よく使われる HTML タグとその特徴の完全なリスト

まず、HTML タグのいくつかの特性を知っておく必要があります。 1. 「<keyword&g...

MySQL Truncate の使用方法の詳細な説明

目次MySQL 切り捨ての使用1. 構文を切り捨てる2. Truncateの使用上の注意3. TRU...