Rumah >pangkalan data >tutorial mysql >Bagaimana Mengira Perbezaan Tahun Antara Dua Tarikh dengan Tepat dalam MySQL?
Cabaran:
Kira dengan tepat perbezaan tahun antara dua tarikh dalam pangkalan data MySQL, mengendalikan tahun lompat dengan betul dan memastikan hasil yang konsisten.
Penyelesaian MySQL:
<code class="language-sql">YEAR(date1) - YEAR(date2) - (DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d'))</code>
Pecahan Terperinci:
YEAR(date1) - YEAR(date2)
: Mengira perbezaan mentah dalam tahun antara dua tarikh input.(DATE_FORMAT(date1, '%m%d') < DATE_FORMAT(date2, '%m%d'))
: Bahagian ini menyemak sama ada bulan dan hari date1
mendahului date2
. Jika benar, ini bermakna date1
jatuh lebih awal dalam tahun berbanding date2
, walaupun perbezaan tahun sudah dikira.Hasil boolean (TRUE/FALSE) perbandingan ditukar secara tersirat kepada integer (1 untuk TRUE, 0 untuk FALSE). Integer ini kemudiannya ditolak daripada perbezaan tahun awal, memastikan pengiraan tahun yang tepat.
Contoh Ilustrasi:
Jadual berikut menunjukkan ketepatan kaedah:
<code>+------------+------------+------------+ | date1 | date2 | diff_years | +------------+------------+------------+ | 2011-07-20 | 2011-07-18 | 0 | | 2011-07-20 | 2010-07-20 | 1 | | 2011-06-15 | 2008-04-11 | 3 | | 2011-06-11 | 2001-10-11 | 9 | | 2007-07-20 | 2004-07-20 | 3 | +------------+------------+------------+</code>
Ringkasan:
Ungkapan MySQL ringkas ini menyediakan kaedah yang boleh dipercayai dan tepat untuk mengira perbezaan tahun antara dua tarikh, dengan teliti mengambil kira tahun lompat dan mengekalkan konsistensi merentas pelbagai senario tarikh.
Atas ialah kandungan terperinci Bagaimana Mengira Perbezaan Tahun Antara Dua Tarikh dengan Tepat dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!