ホームページ > データベース > mysql チュートリアル > MySQL で正確な月の違いを計算するにはどうすればよいですか?

MySQL で正確な月の違いを計算するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-25 14:14:11
オリジナル
477 人が閲覧しました

How to Calculate Precise Month Differences in MySQL?

MySQL での正確な月の差の計算

MySQL には、2 つの日付の間の月数を計算するために不可欠な関数 TIMESTAMPDIFF() が用意されています。これにより、さまざまな月の長さやうるう年に伴う複雑な問題が排除されます。

SELECT TIMESTAMPDIFF(MONTH, '2012-03-08', '2012-08-01');
-- Outputs: 4
ログイン後にコピー

精度の向上

精度を高めるために、より複雑なアプローチを使用できます。

SELECT 
  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
  )
ログイン後にコピー

この数式は、(月の差後の) 残りの日数を小数として計算することで精度を高めます。 month.

WITH startdate AS '2012-03-08', enddate AS '2012-04-15'
SELECT 
  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
  );
-- Outputs: 1.2333
ログイン後にコピー

この結果は、2 つの日付の間に 1 か月と 1 か月の約 23.33% の差があることを示しています。

以上がMySQL で正確な月の違いを計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート