MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

関数を使用して、2つの日付値の年、月、日の差をどのように返すことができますか?


次のように、日付の値を引数として受け取り、年、月、日の差を返す関数を作成できます。

mysql> CREATE FUNCTION date_difference(Date1 DATE, date2 DATE) RETURNS VARCHAR(30)
   -> RETURN CONCAT(
   -> @years := TIMESTAMPDIFF(YEAR, date1, date2),IF (@years = 1, ' year, ', ' years, '),
   -> @months := TIMESTAMPDIFF(MONTH, DATE_ADD(date1, INTERVAL @years YEAR), date2),IF (@months = 1, ' month, ', ' months, '),
   -> @days := TIMESTAMPDIFF(DAY, DATE_ADD(date1, INTERVAL @years * 12 + @months MONTH), date2),IF (@days = 1, ' day', ' days')) ;
   Query OK, 0 rows affected (0.00 sec)

ここで、日付の値を関数date_difference

の引数として渡します。
mysql> Select date_difference('2015-11-16','2016-12-17') AS Difference;
+------------------------+
| Difference             |
+------------------------+
| 1 year, 1 month, 1 day |
+------------------------+
1 row in set (0.00 sec)

上記の結果セットは、関数の引数として指定された2つの日付の差を示しています。


  1. 現在の日付と参加日の差を返すMySQLDATE関数

    最初に、現在の日付を見つけ、DATEDIFF()を使用して参加日と現在の日付の差を取得します。 現在の日付は次のとおりです- mysql> select curdate(); +------------+ |  curdate() | +------------+ | 2019-10-26 | +------------+ 1 row in set (0.00 sec) まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> JoiningDate va

  2. MySQLで2つの日時値の違いを見つけますか?

    2つの日時値の違いを見つけるには、TIMESTAMPDIFF()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> DueDatetime1 datetime,    -> DueDatetime2 datetime    -> ); Query OK, 0 rows affected (0.86 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> ins