MySQL クエリ日数
データベース開発では、2 つの日付間の日数、時間数、分数などを計算するなど、時間と日付の差をクエリする必要がよくあります。 MySQL は、時刻と日付の差を簡単に計算できるこの機能を実装するための関数をいくつか提供しています。
1. DATEDIFF 関数
DATEDIFF 関数は、2 つの日付間の差を日数で返します。構文は次のとおりです。
DATEDIFF(date1,date2)
ここで、date1 と date2 は 2 つの日付または日時値であり、関数は 2 つの日付間の日数の差を返します。 date1 が date2 より後の場合、戻り値は正の値になり、それ以外の場合、戻り値は負の値になります。
例:
SELECT DATEDIFF('2019-01-03','2018-12-31'); // 输出3
2 つのテーブルのユーザー登録日数の差をクエリ:
SELECT DATEDIFF(reg_time,now()) AS days FROM user;
2. TIMESTAMPDIFF 関数
TIMESTAMPDIFF 関数は 2 つの日付を返します間の時差。構文は次のとおりです。
TIMESTAMPDIFF(unit,start,stop)
ここで、unit は時差を計算する単位を表し、秒 (SECOND)、分 (MINUTE)、時間 (HOUR)、日 (DAY)、週 (WEEK) を表します。 )、月 (MONTH) )、または年 (YEAR)。
start と stop は開始日と終了日を表し、日付値または日時値を指定できます。この関数は、2 つの日付間の時差を単位で返します。 start が stop より後の場合、戻り値は正の値になり、それ以外の場合、戻り値は負の値になります。
例:
SELECT TIMESTAMPDIFF(MONTH,'2018-02-28','2018-03-31'); // 输出1
ユーザーの登録期間をクエリする:
SELECT TIMESTAMPDIFF(DAY,reg_time,now()) AS days FROM user;
3. TIMEDIFF 関数
TIMEDIFF 関数は、2 つの時刻間の時間差を返します。形式は hh:mm:ss です。構文は次のとおりです。
TIMEDIFF(time1, time2)
ここで、time1 と time2 は時刻または時刻の日付値であり、関数は time1 と time2 の時間差を返します。
例:
SELECT TIMEDIFF('18:30:00', '17:00:00'); // 输出01:30:00
注文の配達時間を問い合わせる:
SELECT TIMEDIFF(end_time,start_time) AS duration FROM order WHERE order_id=123;
4. TIME_TO_SEC 関数と SEC_TO_TIME 関数
TIME_TO_SEC 関数は時間値を変換します
TIME_TO_SEC(time)
ここで、time は時刻または時刻の日付値であり、関数は時間の合計秒数を返します。
SEC_TO_TIME 関数は秒を時間値に変換します。構文は次のとおりです:
SEC_TO_TIME(seconds)
ここで、秒は秒数を表し、関数は対応する時間値を返します。
例:
SELECT TIME_TO_SEC('01:30:00'); // 输出5400 SELECT SEC_TO_TIME(5400); // 输出01:30:00
5. 概要
MySQL には、日時の差を計算するための関数が複数用意されており、ニーズに応じて柔軟に選択して使用できます。実際の開発では、機能をより適切に実装するために、特定のビジネス ニーズに基づいて適切な計算方法を選択する必要があります。
以上がmysqlクエリ日数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。