MySQL Query Days
Dalam pembangunan pangkalan data, selalunya perlu untuk menanyakan perbezaan masa dan tarikh, seperti mengira bilangan hari, jam, minit, dll. antara dua tarikh. MySQL menyediakan beberapa fungsi untuk melaksanakan fungsi ini, yang boleh mengira perbezaan antara masa dan tarikh dengan mudah.
1. Fungsi DATEDIFF
Fungsi DATEDIFF mengembalikan perbezaan hari antara dua tarikh. Sintaks adalah seperti berikut:
DATEDIFF(date1,date2)
di mana date1 dan date2 ialah dua tarikh atau nilai datetime, dan fungsi mengembalikan perbezaan hari antara dua tarikh. Jika tarikh1 lewat daripada tarikh2, nilai pulangan adalah positif, jika tidak nilai pulangan adalah negatif.
Contohnya:
SELECT DATEDIFF('2019-01-03','2018-12-31'); // 输出3
Soal perbezaan hari pendaftaran pengguna dalam dua jadual:
SELECT DATEDIFF(reg_time,now()) AS days FROM user;
2. Fungsi TIMESTAMPDIFF
Fungsi TIMESTAMPDIFF mengembalikan dua tarikh perbezaan masa antara. Sintaksnya adalah seperti berikut:
TIMESTAMPDIFF(unit,start,stop)
di mana unit mewakili unit untuk mengira perbezaan masa, yang boleh menjadi saat (KEDUA), minit (MINIT), jam (JAM), hari (HARI), minggu (MINGGU). ), bulan (BULAN) ) atau tahun (TAHUN).
mula dan berhenti mewakili tarikh mula dan tarikh tamat, yang boleh menjadi nilai tarikh atau masa tarikh. Fungsi mengembalikan perbezaan masa antara dua tarikh dalam unit. Jika mula lewat daripada berhenti, nilai pulangan adalah positif, jika tidak nilai pulangan adalah negatif.
Contohnya:
SELECT TIMESTAMPDIFF(MONTH,'2018-02-28','2018-03-31'); // 输出1
Tanya tempoh pendaftaran pengguna:
SELECT TIMESTAMPDIFF(DAY,reg_time,now()) AS days FROM user;
3 fungsi TIMEDIFF
Fungsi TIMEDIFF mengembalikan perbezaan masa antara dua kali , fungsi TIMEDIFF. format ialah hh:mm:ss. Sintaks adalah seperti berikut:
TIMEDIFF(time1, time2)
di mana masa1 dan masa2 ialah nilai masa atau tarikh masa, dan fungsi mengembalikan perbezaan masa antara masa1 dan masa2.
Contohnya:
SELECT TIMEDIFF('18:30:00', '17:00:00'); // 输出01:30:00
Soal masa penghantaran pesanan:
SELECT TIMEDIFF(end_time,start_time) AS duration FROM order WHERE order_id=123;
4 fungsi TIME_TO_SEC dan fungsi SEC_TO_TIME
Fungsi TIME_TO_SEC menukar nilai masa. ke dalam Saat, sintaksnya adalah seperti berikut:
TIME_TO_SEC(time)
di mana masa ialah nilai masa atau tarikh masa, dan fungsi mengembalikan jumlah saat masa.
Fungsi SEC_TO_TIME menukar saat kepada nilai masa Sintaks adalah seperti berikut:
SEC_TO_TIME(seconds)
di mana saat mewakili bilangan saat dan fungsi mengembalikan nilai masa yang sepadan.
Contohnya:
SELECT TIME_TO_SEC('01:30:00'); // 输出5400 SELECT SEC_TO_TIME(5400); // 输出01:30:00
5. Ringkasan
MySQL menyediakan berbilang fungsi untuk mengira perbezaan masa dan tarikh, yang boleh dipilih secara fleksibel dan digunakan mengikut keperluan. Dalam pembangunan sebenar, kaedah pengiraan yang sesuai harus dipilih berdasarkan keperluan perniagaan tertentu untuk melaksanakan fungsi dengan lebih baik.
Atas ialah kandungan terperinci hari pertanyaan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!