MySQL における TIMESTAMPDIFF ケースの詳細な説明

MySQL における TIMESTAMPDIFF ケースの詳細な説明

1.構文

TIMESTAMPDIFF(unit,begin,end); 単位に従って時間差を返します。渡された begin と end のデータ構造は同じである必要はありません。一方が Date でもう一方が DateTime であってもかまいません。

2. ユニット

サポートされているユニットは次のとおりです:

  • マイクロ秒
  • 2番
  • 時間
  • 四半期

3. 例

次の例は、TIMESTAMPDIFF の最も基本的な使用法です。

  • 3.1 2017-01-01 から 2017-02-01 までの間には何ヶ月ありますか
結果として TIMESTAMPDIFF(MONTH, '2017-01-01', '2017-02-01') を選択します。

+--------+
| 結果 |
+--------+
| 1 |
+--------+
セット内の 1 行 (0.00 秒)
  • 3.2 2017-01-01 から 2017-02-01 までの間には何日ありますか
結果として TIMESTAMPDIFF(DAY, '2017-01-01', '2017-02-01') を選択します。

+--------+
| 結果 |
+--------+
| 31 |
+--------+
セット内の 1 行 (0.00 秒)
  • 3.3 2017-01-01 08: 00:00 から 2017-01-01 08: 55:00 までは何分ありますか
SELECT TIMESTAMPDIFF(MINUTE, '2017-01-01 08:00:00', '2017-01-01 08:55:00') 結果;

+--------+
| 結果 |
+--------+
| 55 |
+--------+
セット内の 1 行 (0.00 秒)
  • 3.4 2017-01-01 08: 00:00 から 2017-01-01 08: 55:33 までは何分ありますか
SELECT TIMESTAMPDIFF(MINUTE, '2017-01-01 08:00:00', '2017-01-01 08:55:33') 結果;

+--------+
| 結果 |
+--------+
| 55 |
+--------+
セット内の 1 行 (0.00 秒)
  • 3.5 DAY と MINUTE の DIFF を計算する場合、対応する DAY と MINUTE が直接減算されます。

  • 3.6 SECOND はどのように計算されますか?
SELECT TIMESTAMPDIFF(SECOND, '2017-01-01 08:00:00', '2017-01-01 08:55:33') 結果;

55 * 60 + 33 = 3333
+--------+
| 結果 |
+--------+
| 3333 |
+--------+
セット内の 1 行 (0.00 秒)
  • 3.7 データベース内の2つの日付フィールドの差分を調べる方法
    • 3.7.1 テーブルを作成する
      CREATE TABLE demo (id INT AUTO_INCREMENT PRIMARY KEY、start_time DATE NOT NULL、end_time DATE NOT NULL);
      クエリは正常、影響を受けた行は 0 行 (0.10 秒)
    • 3.7.2 データの追加
      デモに挿入(開始時間、終了時間)
      値('1983-01-01', '1990-01-01'),
      ('1983-01-01'、'1989-06-06')、
      ('1983-01-01'、'1985-03-02')、
      ('1983-01-01'、'1992-05-05')、
      ('1983-01-01 11:12:11', '1995-12-01');
    • 3.7.3 データを直接クエリする
      デモから*を選択します。
      +----+------------+------------+
      | id | 開始時刻 | 終了時刻 |
      +----+------------+------------+
      | 1 | 1983-01-01 | 1990-01-01 |
      | 2 | 1983-01-01 | 1989-06-06 |
      | 3 | 1983-01-01 | 1985-03-02 |
      | 4 | 1983-01-01 | 1992-05-05 |
      | 5 | 1983-01-01 | 1995-12-01 |
      +----+------------+------------+
      セット内の行数は 5 です (0.00 秒)
    • 3.7.4 期間の計算
      デモから期間として *、TIMESTAMPDIFF(YEAR、start_time、end_time) を選択します。
      
      +----+------------+------------+-----------+
      | id | 開始時刻 | 終了時刻 | 期間 |
      +----+------------+------------+-----------+
      | 1 | 1983-01-01 | 1990-01-01 | 7 |
      | 2 | 1983-01-01 | 1989-06-06 | 6 |
      | 3 | 1983-01-01 | 1985-03-02 | 2 |
      | 4 | 1983-01-01 | 1992-05-05 | 9 |
      | 5 | 1983-01-01 | 1995-12-01 | 12 |
      +----+------------+------------+-----------+
      セット内の行数は 5 です (0.00 秒)
    • 3.7.5 その他のアプリケーション
      デモの結果として、*、if(TIMESTAMPDIFF(YEAR, end_time, CURRENT_TIMESTAMP())< 26 ,'< 26','>= 26') を選択します。
      
      +----+------------+------------+---------+
      | id | 開始時刻 | 終了時刻 | 結果 |
      +----+------------+------------+---------+
      | 1 | 1983-01-01 | 1990-01-01 | >= 26 |
      | 2 | 1983-01-01 | 1989-06-06 | >= 26 |
      | 3 | 1983-01-01 | 1985-03-02 | >= 26 |
      | 4 | 1983-01-01 | 1992-05-05 | < 26 |
      | 5 | 1983-01-01 | 1995-12-01 | < 26 |
      +----+------------+------------+---------+
      セット内の行数は 5 です (0.00 秒)

これで、MySQL の TIMESTAMPDIFF ケースの詳細な説明に関するこの記事は終了です。MySQL の TIMESTAMPDIFF に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL の時間差関数 TIMESTAMPDIFF と DATEDIFF の使用
  • MySQL 時間差関数 (TIMESTAMPDIFF、DATEDIFF)、日付変換計算関数 (date_add、day、date_format、str_to_date)
  • 実用的な MySQL + PostgreSQL バッチ挿入更新 insertOrUpdate
  • MYSQL row_number() および over() 関数の詳細な使用方法
  • MySQL の暗黙的な型変換によって発生するインデックス障害の解決策
  • MySQLデータクエリが多すぎるとOOMが発生するかどうかについての簡単な議論
  • Django は MySQL マスター スレーブを構築して読み取りと書き込みの分離を実現します
  • MySQL マルチテーブル結合クエリの詳細な説明

<<:  Nginx キャッシュ設定例

>>:  vue 動的コンポーネント

推薦する

Vueでスワイパープラグインを使用する際の問題を解決する

デモを作成するときにこのプラグインを使用していくつか問題が発生したため、プラグインの使用方法といくつ...

Vue 監視属性のグラフィック例の詳細な説明

目次リスナープロパティとは何ですか?リスニングプロパティと計算プロパティの違いは何ですか?監視プロパ...

JavaScript でエラーが発生しやすい演算子操作の概要

目次算術演算子異常状況1: 特殊値リテラルを含む操作異常な状況 2: 他の種類のデータが数学演算に関...

HTML テーブル マークアップ チュートリアル (37): 背景画像属性 BACKGROUND

テーブル ヘッダーの背景画像を設定します。任意の GIF または JPEG 画像ファイルを使用できま...

MySql マスタースレーブレプリケーションの実装原理と構成

データベースの読み取りと書き込みの分離は、トラフィック量の多い大規模システムやインターネット アプリ...

React で遅延読み込みを使用して最初の画面の読み込み時間を短縮する方法

目次使用インストールルーティングでどのように使用しますか?読み込み速度の比較最近、中間およびバックエ...

Vue.js アプリケーションのパフォーマンス最適化分析 + ソリューション

目次1. はじめに2. Vue JS のパフォーマンス最適化が必要な理由は何ですか? 3. Vueの...

Linux での MySQL のインストールに関するチュートリアル

目次1. 古いバージョンを削除する2. サーバーのカーネルタイプを確認し、適切なバージョンをダウンロ...

Node.js は、異なるリクエストパスに応じて異なるデータを返します。

目次1. 異なるリクエストパスに応じて異なるデータを返す方法を学びます。 2. 送信データ: データ...

フローティングメニュー、上下スクロール効果を実現できます

コードはさらに合理化できますが、時間の制約があるため、まずはここで投稿して、自分で最適化してメニュー...

CSS フレキシブルレイアウト FLEX、メディアクエリ、モバイルクリックイベントの実装

フレックスレイアウト定義: Flexレイアウトの要素は、 Flex 、または略して「コンテナー」と呼...

Nginx Rewrite の使用シナリオと設定方法の分析

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

HTML で #include ファイルを使用する例

a.htmとb.htmの2つのファイルがあります。同じディレクトリ内のa.htmの内容は次のとおりで...

Ubuntu 14.04 で QT5 をインストール、設定、アンインストールするための詳細な手順

1. 以前 QT5.13 バージョンをダウンロードしましたが、インストール後、Qtcreator を...

モバイルでのHTML5経由のファイルアップロード

ほとんどの場合、PC でファイルをアップロードするにはプラグインが使用され、フラッシュが導入されても...