1. ホーム
  2. sql-server

[解決済み] 2つの日付の間の日/月/年の差(dateiff)を求めるには?

2022-08-22 16:41:20

質問

を実装する方法を探しています。 SQLServer-functionのdateiffを実装する方法を探しています。 をPostgreSQLで実装する方法を探しています。つまり、この関数は、指定された開始日と終了日の間で交差した指定された日付部分の境界の数を(符号付き整数値として)返します。

datediff(dd, '2010-04-01', '2012-03-05') = 704 // 704 changes of day in this interval
datediff(mm, '2010-04-01', '2012-03-05') = 23  // 23 changes of month
datediff(yy, '2010-04-01', '2012-03-05') = 2   // 2 changes of year

dd'は単純に引き算でできることはわかったのですが、他の2つはどうでしょうか?

どのように解決するのですか?

SELECT
  AGE('2012-03-05', '2010-04-01'),
  DATE_PART('year', AGE('2012-03-05', '2010-04-01')) AS years,
  DATE_PART('month', AGE('2012-03-05', '2010-04-01')) AS months,
  DATE_PART('day', AGE('2012-03-05', '2010-04-01')) AS days;

これは フル 年、月、日...2つの日付の間。

          age          | years | months | days
-----------------------+-------+--------+------
 1 year 11 mons 4 days |     1 |     11 |    4

より詳細 日付情報 .