この記事では、例を使用して、MySQL の日付と時刻の間隔計算について説明します。ご参考までに、詳細は以下の通りです。 まず、MySQL の間隔値は主に日付と時刻の計算に使用されることを明確にする必要があります。間隔値を作成する場合は、次の式を使用できます。 区間式単位 次に、INTERVAL キーワードは間隔値を決定する expr であり、間隔の単位を指定する unit であることを理解する必要があります。 たとえば、1 日の間隔を作成するには、次の式を使用します。 間隔 1日 ただし、INTERVAL と UNIT は大文字と小文字を区別しないため、次の式は上記の式と同等になります。 間隔 1日 日付と時刻の演算における間隔値の実際の使用法と構文は、次のコードで確認できます。 日付 + INTERVAL 式 単位 日付 - INTERVAL 式 単位 間隔値は、DATE_ADD、DATE_SUB、TIMESTAMPADD、TIMESTAMPDIFF などのさまざまな時間関数でも使用されます。 MySQL では、次の表に示すように、expr と unit の標準形式が定義されています。
例を見てみましょう。次の SQL ステートメントは、日付 2020-01-01 に 1 日を追加し、結果を 2020-01-02 として返します。 mysql> '2020-01-01' + 間隔 1 日を選択します。 +---------------------------------+ | '2020-01-01' + 間隔 1 日 | +---------------------------------+ | 2020-01-02 | +---------------------------------+ セット内の1行(0.01秒) DATE 値または DATETIME 値を含む式で間隔値を使用し、間隔値が式の右側にある場合は、次の例に示すように、expr の負の値を使用できます。 mysql> '2020-01-01' + 間隔 -1 日を選択します。 +--------------------------------+ | '2020-01-01' + 間隔 -1 日 | +--------------------------------+ | 2019-12-31 | +--------------------------------+ セット内の1行 DATE_ADD と DATE_SUB を使用して日付値に 1 か月を加算/減算する方法を見てみましょう。 mysql> SELECT DATE_ADD('2020-01-01', INTERVAL 1 MONTH) 1_MONTH_LATER, DATE_SUB('2020-01-01',間隔1か月) 1_MONTH_BEFORE; +---------------+----------------+ | 1 か月後 | 1 か月前 | +---------------+----------------+ | 2020-02-01 | 2019-12-01 | +---------------+----------------+ セット内の1行 TIMESTAMPADD(unit, interval, expression) 関数を使用してタイムスタンプ値に 30 分を追加する SQL ステートメントを見てみましょう。 mysql> SELECT TIMESTAMPADD(MINUTE,30,'2020-01-01') 30_MINUTES_LATER; +---------------------+ | 30_分後 | +---------------------+ | 2020-01-01 00:30:00 | +---------------------+ セット内の1行 ここまで説明しても、まだ少し混乱しているかもしれません。心配しないでください。具体的な操作を見てみましょう。デモ用に、members という新しいテーブルを作成します。 CREATE TABLEメンバーシップ( id INT AUTO_INCREMENT 主キー、 電子メール VARCHAR(355) NOT NULL, プラン VARCHAR(255) NOT NULL、 期限切れ日 日付 NULL ではありません ); 上記のメンバーシップ テーブルでは、expired_date 列に各メンバーのメンバーシップの有効期限が格納されています。次に、メンバーシップ テーブルにデータを挿入してみましょう。 メンバーシップに挿入(メール、プラン、有効期限) 値('[email protected]','ゴールド','2018-07-13'), ('[email protected]','プラチナ','2018-07-10'), ('[email protected]','シルバー','2018-07-15'), ('[email protected]','ゴールド','2018-07-20'), ('[email protected]','シルバー','2018-07-08'); ここで、今日が 2018-07-06 であると仮定し、SQL ステートメントを使用して、今後 7 日以内にメンバーシップの有効期限が切れるメンバーを照会します。 選択 メール、 プラン、 期限切れ日、 DATEDIFF(有効期限, '2018-07-06') 残り日数 から 会員 どこ '2018-07-06' BETWEEN DATE_SUB(expired_date, INTERVAL 7 DAY) AND expired_date; 上記のクエリステートメントを実行すると、次の結果が得られます。 +--------------------------+----------+--------------+----------------+ | メール | プラン | 有効期限 | 残り日数 | +--------------------------+----------+--------------+----------------+ | [email protected] | ゴールド | 2018-07-13 | 7 | | [email protected] | プラチナ | 2018-07-10 | 4 | | [email protected] | シルバー | 2018-07-08 | 2 | +--------------------------+----------+--------------+----------------+ 3行セット 上記のSQLでは、DATE_SUB関数は、間隔値(INTERVAL 7 DAY)で指定された有効期限から7日を減算します。つまり、あるデータの元の日付が13日の場合、7日を減算すると6日になります。大体こういう意味です。皆さんもある程度は理解していると思います。 今日はこれで終わりです。 MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL トランザクション操作スキル」、「MySQL ストアド プロシージャ スキル」、「MySQL データベース ロック関連スキルの概要」、および「MySQL 共通関数の概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
>>: OpenSSL は双方向認証のチュートリアルを実装します (サーバーとクライアントのコード付き)
序文: Vue3 がリリースされてからかなり経ちますが、最近、会社のプロジェクトでVue3 + Ty...
1. Vimの公式ウェブサイトにアクセスして、オペレーティングシステムに適した実行ファイルをダウンロ...
vueプロジェクトをパッケージ化してサーバーにデプロイし、正常にログインできるが、ローカルで起動する...
目次ネット上の質問から生まれた思考MySQL ソースコマンドネット上の質問から生まれた思考今日仕事中...
前提条件Windows Server でコンテナーを実行するには、Windows Server (半...
Zabbix による SQL Server の監視を見てみましょう。まずfreetdsをダウンロード...
Nginxのproxy_cacheを使用してキャッシュサーバーを構築する1: ngx_cache_...
落とし穴1. ネット上の多くのチュートリアルでは環境変数を設定するファイル名はmy.iniと書いてあ...
背景ご存知のとおり、JavaEE プロジェクトを開発した後は、そのプロジェクトをサーバーの Tomc...
目次最初のステップはMySQLをダウンロードすることですステップ2: ダウンロードした圧縮パッケージ...
目次1. JavaScript オブジェクト1).配列オブジェクト2).ブールオブジェクト3).日付...
GitHub にはあらゆる種類の魔法のツールがあります。今日、私はデータベースを操作するためのコマン...
目次Vue.jsにおける属性とプロパティ値および関連する処理として属性とプロパティの概念属性とプロパ...
目次1. Vueフロントエンドを構成する1. クロスドメイン構成を開発する2. 本番環境のクロスドメ...
序文プロジェクト開発中、各人のコーディング習慣が異なるため、記述された CSS コードは十分に構造化...