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

推薦する

MySQL における 10 進数型の使用法の簡単な紹介

MySQL でサポートされている浮動小数点型は、 FLOAT 、 DOUBLE 、およびDECIMA...

Pycharmとsshリモートアクセスサーバーdockerの詳細なチュートリアル

背景: 一部の実験はサーバー上で完了する必要があります。したがって、リモート サーバー上のコードをロ...

このような大画面のデジタルスクロール効果が必要になる場合があります

大画面のデジタル スクロール効果は、最近の作業における大画面 UI ダイアグラムから生まれました。U...

secure_file_priv nullの問題を解決する

secure_file_priv = ' ';管理者としてcmdを実行します。 my...

RGBカラーテーブルコレクション

RGBカラーテーブル色英語名RGB 16色雪255 250 250 #FFFAFAゴーストホワイト2...

CSS 円形ホローイングの実装(クーポン背景画像)

この記事では主に、クーポンの背景画像などでよく使われる CSS 円形ホローイングについて紹介し、皆さ...

CSS を使用してデータ ホットスポット効果を実現する方法

効果は以下のとおりです。 分析する1. ここでは、点を囲む 3 つの円がズームアニメーションを実行し...

Dockerイメージを完全にアンインストールする手順

1. docker ps -a 実行中のイメージプロセスを表示する [root@mylinux~]#...

UrlRewriter のキャッシュ問題と関連する一連の調査

ウェブサイト機能を開発する場合、セッション キャッシュを時間内にクリアできません。一連の探索が始まり...

Linux (CentOS7) で RPM を使用して MySQL 8.0.11 をインストールするチュートリアル

目次1. インストールの準備1. Linux関連情報の表示(Linuxコマンドライン操作) 2. M...

Linux Tensorflow2.0のインストール問題を解決する

conda アップデート conda pip で tf-nightly-gpu-2.0-previ...

エンタープライズプロダクション MySQL 最適化入門

Oracle、DB2、SQL Server などの他の大規模データベースと比較すると、MySQL に...

MySQL 8.0.12 簡単インストールチュートリアル

この記事では、MySQL 8.0.12のインストールチュートリアルを参考までに紹介します。具体的な内...

Linux サーバーに SSH パスワードなしでログインする方法

テスト サーバーにログインするたびに、必ず ssh ログインのパスワードを入力する必要があります。ロ...

フロントエンドに必要なNginx設定の詳細な説明

Nginx (エンジン x) は、軽量で高性能な HTTP およびリバース プロキシ サーバーであり...