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

推薦する

Docker と Intellij IDEA の融合により、Java 開発の生産性が 10 倍向上

目次1. 開発前の準備2. 新しいプロジェクトIdea は Java 開発のための強力なツールであり...

docker を使用してシンプルな C/C++ プログラムをデプロイする方法

1. まずhello-world.cppファイルを作成しますプログラムコードは次のとおりです。 #i...

CSS で 3D ブック効果を実装するためのサンプル コード

さっそく、レンダリングを見てみましょうソースコードは以下のとおりです <!DOCTYPE ht...

IE をフリーズさせる HTML コード

任意のテキスト エディターを開き、次のコードをコピーして、たとえば SomeFilename.htm...

CentOS 6 は Docker を使用して Redis マスター スレーブ データベース操作例を展開します

この記事では、Docker を使用して Centos6 に Redis マスター/スレーブ データベ...

MySQL: データの整合性

データ整合性は、エンティティ整合性、ドメイン整合性、参照整合性に分けられます。参照整合性:参照整合性...

MySQL統計データテーブルの設計方法

目次リアルタイム更新は必要ですか?マテリアライズド ビュー ツール (Flexviews)カウントテ...

TypeScript のユニオン型、交差型、型ガード

目次1. ユニオンタイプ2. クロスオーバータイプ3. 型保護3.1 カスタム型保護3.2 保護の種...

sqlite を mysql スクリプトに移行する方法

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 パーレル # # https:/...

入力のsize属性とmaxlength属性の違い

最近、プロジェクトで input size 属性と maxlength 属性を使用しました。以前は、...

nginx+lua を使用した単一マシンでの何万もの同時接続の実装

nginx は弊社で最もよく使用されるサーバーで、コンテンツ配信やリバース プロキシによく使用されま...

MySQLのMERGEストレージエンジンの詳細な説明

MERGE ストレージ エンジンは、MyISAM テーブルのグループを論理ユニットとして扱い、同時に...

フレックスレイアウトは、1行あたりの固定行数と適応レイアウトを実現します。

この記事では、1行あたりの固定行数+アダプティブレイアウトを実現するフレックスレイアウトを紹介し、皆...

サーバー同時実行数の推定式と計算方法

最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...

さまざまなHTTPリターンステータスコードの詳細な説明

サイト上のページを表示するためのリクエストがサーバーに送信されると(たとえば、ユーザーがブラウザでペ...