MySQL の時間差関数 TIMESTAMPDIFF と DATEDIFF の使用

MySQL の時間差関数 TIMESTAMPDIFF と DATEDIFF の使用

時間差関数 TIMESTAMPDIFF と DATEDIFF の使用

SQL ステートメント、特にストアド プロシージャを記述する場合、日付と時刻の比較と判断を頻繁に使用します。ここでは、これら 2 つの時間差比較関数の使用方法の例を示します。

datediff 関数は日数の差を返すもので、時間、分、秒にローカライズすることはできません。

-- 2 日の差 select datediff('2018-03-22 09:00:00', '2018-03-20 07:00:00');

TIMESTAMPDIFF 関数にはパラメータ設定があり、日 (DAY)、時間 (HOUR)、分 (MINUTE)、秒 (SECOND) の精度を指定できます。datediff 関数よりも柔軟に使用できます。 2つの時間を比較するときは、小さい方を前に、大きい方を後ろに置きます。

--1 日の差 select TIMESTAMPDIFF(DAY, '2018-03-20 23:59:00', '2015-03-22 00:00:00');
-- 差は 49 時間です select TIMESTAMPDIFF(HOUR, '2018-03-20 09:00:00', '2018-03-22 10:00:00');
-- 差は 2940 分です select TIMESTAMPDIFF(MINUTE, '2018-03-20 09:00:00', '2018-03-22 10:00:00');

-- 差は 176400 秒です select TIMESTAMPDIFF(SECOND, '2018-03-20 09:00:00', '2018-03-22 10:00:00');

ストアド プロシージャの記述方法:

注: var_committime は前回の業務で取得した比較に必要な時間です。

-- 現在の時刻を取得します。SET var_current_time = CONCAT(CURDATE(),' ',CURTIME());
-- 時間の比較 SET var_time_diff = TIMESTAMPDIFF(MINUTE, var_committime, var_current_time);

 
-- 未レビュー契約が 48 時間以上処理されていないかどうかを判断します。処理されていない場合は、後続の論理処理を実行し、そうでない場合は処理しません。
IF (var_time_diff > 2880) の場合

-- 関連するビジネスロジック処理 END IF;

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

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

<<:  Dockerコンテナデータをコピーしてバックアップする方法の詳細な説明

>>:  Vue カスタム オプション時間カレンダー コンポーネント

推薦する

iframeリフレッシュ方式の方が便利

iframeを更新する方法1. 更新するには、JavaScriptのdocument.fr.loca...

テキストエリア テキストエリアの幅と高さ 幅と高さの自動適応実装コード

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

MacにMySQLをインストールするときに初期パスワードを忘れた場合の対処方法

パスワードを忘れると困ります。Mac に MySQL をインストールするための初期パスワードを忘れて...

Linux zabbix エージェントの展開と設定方法の詳細な説明

1. web01にzabbix-agentをインストールするZabbix ウェアハウスをデプロイする...

入力タイプ=テキスト値=str を使用するための不完全なソリューション

今日、非常に奇妙な問題に遭遇しました。次のコードを見てください。 SimpleDateFormat ...

共有サイドバーを実装するためのネイティブJS

この記事では、ネイティブ JS で実装された共有サイドバーを紹介します。効果は次のとおりです。 以下...

Vue v-for ループを書く 7 つの方法

目次1. v-forループでは常にキーを使用する2. 特定のスコープ内でv-forループを使用する3...

CSS flex 複数列レイアウト

基本的な3列レイアウト 。容器{ ディスプレイ: フレックス; 幅: 500ピクセル; 高さ: 20...

LinuxシステムにISOファイルをインストールする方法

Linux システムで iso ファイルをインストールするにはどうすればいいですか?インストール手順...

Element UI を使用してページにページング ナビゲーション バーを追加する方法

必要ページング バーを追加します。これにより、ページにジャンプしたり、ページ番号に従って特定のページ...

MySQL 起動失敗の問題とシナリオ分析

1. ワンストップソリューション1. 問題の分析と特定 # MySQL設定ファイルを見つけて、MyS...

Vscode が Ubuntu にリモート接続する際のエラー問題の解決方法

1. 事件の背景:仕事上、Ubuntu への vscode リモート接続を使用する必要があります。 ...

CentOs7 64 ビット MySQL 5.6.40 ソースコードのインストール プロセス

1. インストールプロセス中に問題が発生しないように、まず依存パッケージをインストールします。 [r...

Robots.txtの詳細な紹介

Robots.txt はプレーンテキスト ファイルであり、Web サイト管理者は、ロボットによるアク...

Vue echarts は水平棒グラフを実現します

この記事では、水平棒グラフを実現するためのvue echartsの具体的なコードを参考までに共有しま...