ホームページ >データベース >mysql チュートリアル >MySQL で 2 つの日付間の月の差を効率的に計算するにはどうすればよいですか?
問題:
MySQL の 2 つの日付フィールド間の月数の決定は一般的なタスクです。ただし、Unix タイムスタンプと手動計算の使用は面倒な場合があります。
解決策:
TIMESTAMPDIFF() 関数:
MySQL月の差を簡素化する TIMESTAMPDIFF() 関数を提供します計算。構文は次のとおりです:
TIMESTAMPDIFF(unit, startdate, enddate)
ここで:
向け例:
SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-04') -- Outputs: 0 SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-05') -- Outputs: 1
精度のある月の差:
10 進精度で月の差を計算するには、次の式を使用します:
TIMESTAMPDIFF(MONTH, startdate, enddate) + DATEDIFF(enddate, startdate + INTERVAL TIMESTAMPDIFF(MONTH, startdate, enddate) MONTH) / DATEDIFF(startdate + INTERVAL TIMESTAMPDIFF(MONTH, startdate, enddate) + 1 MONTH, startdate + INTERVAL TIMESTAMPDIFF(MONTH, startdate, enddate) MONTH)
この式は日数と閏を補正しますyears.
例:
startdate = '2012-05-05', enddate = '2012-05-27' -- Outputs: 0.7097 startdate = '2012-05-05', enddate = '2012-06-13' -- Outputs: 1.2667 startdate = '2012-02-27', enddate = '2012-06-02' -- Outputs: 3.1935
TIMESTAMPDIFF() 関数と精度の公式を使用すると、MySQL の日付間の月の差を簡単に計算できます。
以上がMySQL で 2 つの日付間の月の差を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。