Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengira Perbezaan Bulan dengan Tepat Antara Dua Tarikh dalam MySQL?

Bagaimanakah Saya Boleh Mengira Perbezaan Bulan dengan Tepat Antara Dua Tarikh dalam MySQL?

Susan Sarandon
Susan Sarandonasal
2024-12-01 14:32:14369semak imbas

How Can I Accurately Calculate the Month Difference Between Two Dates in MySQL?

Mengira Perbezaan Bulan Antara Tarikh dalam MySQL

MySQL menyediakan penyelesaian ringkas untuk mengira bilangan bulan antara dua tarikh dengan TIMESTAMPDIFF() fungsi. Tidak seperti membahagikan cap masa dengan anggaran untuk bilangan saat dalam sebulan, menggunakan TIMESTAMPDIFF() menghasilkan hasil yang tepat dengan mempertimbangkan variasi dalam tempoh bulan dan tahun lompat.

Bulan-Perbezaan tanpa Ketepatan

Untuk mendapatkan bilangan bulan berlalu antara dua tarikh tanpa perpuluhan ketepatan, gunakan sintaks berikut:

TIMESTAMPDIFF(MONTH, 'start_date', 'end_date')

Ungkapan ini secara langsung mengembalikan bilangan bulan lengkap antara tarikh mula dan tamat.

Perbezaan Bulan dengan Ketepatan

Untuk pengiraan perbezaan bulan yang tepat, termasuk nilai perpuluhan untuk mengambil kira bulan separa, gunakan formula ini:

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
  )

Formula yang lebih kompleks ini mengira perbezaan dalam bulan dengan ketepatan, mengembalikan nilai seperti 0.7097 untuk perbezaan 27 hari antara '2012-05-05' dan '2012-05- 27'.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Perbezaan Bulan dengan Tepat Antara Dua Tarikh dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn