この記事では、例を使用して、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 は双方向認証のチュートリアルを実装します (サーバーとクライアントのコード付き)
この記事では、スクロール可能なポップアップウィンドウ効果を実現するためのVueの具体的なコードを参考...
目次1- エラーの詳細2-シングルソリューション2.1-ディレクトリ C:\Windows\Syst...
1. 複数サーバーの優先順位たとえば、各サーバー ブロックがポート 80 をリッスンする場合、www...
<a href="https://www.jb51.net/" title...
天気予報をウェブサイトに挿入すると、次のような効果が得られます。次のコードを挿入する必要があります:...
私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...
1. キャンセル ボタンが押されたときの破線ボックス<br /> 入力に属性値 hide...
<br />関連記事: Facebookの情報アーキテクチャの分析 元記事: http:...
この記事では、二次リンクを実現するためのReactの具体的なコードを参考までに共有します。具体的な内...
セルでは、暗い境界線の色を個別に定義できます。基本的な構文<TD ボーダーコロダーク=colo...
幅と高さを直接使用することはできません。 display:block; または display:in...
Nginx を Web サーバーとして使用する際に、次の問題が発生しました。 1. nginxの起動...
Docker は多くのスペースを占有します。コンテナを実行したり、イメージを取得したり、アプリケー...
OracleデータベースからエクスポートされたデータをMySqlデータベースにインポートします。 1...
vertical-align属性は、主にインライン要素の配置を変更するために使用されます。インライン...