Dalam MySQL, masa sering disimpan dalam jadual dalam bentuk rentetan, tetapi ini menyusahkan untuk pengiraan dan perbandingan masa. Oleh itu, adalah perlu untuk menukar masa jenis rentetan kepada jenis masa untuk memudahkan operasi berkaitan kami. Artikel ini akan memperkenalkan cara menukar masa dalam MySQL.
Dalam MySQL, masa boleh diwakili oleh DATETIME, TIMESTAMP, DATE, TIME dan jenis lain. Masa jenis ini disimpan dalam MySQL ialah masa UTC.
Untuk menukar jenis rentetan dari semasa ke semasa, anda boleh menggunakan fungsi STR_TO_DATE() yang disediakan oleh MySQL. Sintaks fungsi ini adalah seperti berikut:
STR_TO_DATE(str, format)
Antaranya, str mewakili rentetan yang hendak ditukar, dan format mewakili format tarikh dan masa dalam rentetan. Contohnya:
SELECT STR_TO_DATE('2019-08-14 21:12:23', '%Y-%m-%d %H:%i:%s');
Pernyataan SQL ini akan mengembalikan masa jenis DATETIME, menunjukkan 21:12:23 pada 14 Ogos 2019.
Apabila menggunakan fungsi STR_TO_DATE(), anda perlu memberi perhatian kepada perkara berikut:
Selain fungsi STR_TO_DATE(), anda juga boleh menggunakan fungsi UNIX_TIMESTAMP() untuk menukar masa jenis rentetan kepada cap waktu UNIX. Cap masa UNIX mewakili bilangan saat dari 00:00:00 pada 1 Januari 1970 hingga masa semasa. Contohnya:
SELECT UNIX_TIMESTAMP('2019-08-14 21:12:23');
Pernyataan SQL ini akan mengembalikan integer yang mewakili cap masa UNIX 21:12:23 pada 14 Ogos 2019.
Memandangkan cap masa UNIX dan jenis masa dalam MySQL adalah kedua-dua masa UTC, ia boleh dibandingkan dan dikira secara terus. Sebagai contoh, anda boleh menggunakan UNIX_TIMESTAMP() untuk menukar jenis masa kepada cap masa UNIX, dan kemudian menolaknya untuk mendapatkan perbezaan masa antara dua masa. Contohnya:
SELECT UNIX_TIMESTAMP('2019-08-14 21:12:23') - UNIX_TIMESTAMP('2019-08-14 21:12:21');
Pernyataan SQL ini akan mengembalikan integer, menunjukkan masa antara 21:12:23 pada 14 Ogos 2019 dan 21:12:21 pada 14 Ogos 2019 Perbezaan masa ialah 2 detik.
Selain menukar jenis rentetan masa ke jenis masa, anda juga boleh menggunakan fungsi DATE_FORMAT() untuk menukar jenis masa kepada jenis rentetan. Sintaks fungsi ini adalah seperti berikut:
DATE_FORMAT(date, format)
Antaranya, tarikh ialah masa untuk ditukar, dan format ialah format rentetan yang dikembalikan. Contohnya:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
Pernyataan SQL ini akan mengembalikan perwakilan rentetan masa semasa dalam format "YYYY-MM-DD HH:MI:SS".
Ringkasan:
Dalam MySQL, masa selalunya disimpan dalam jadual dalam bentuk rentetan. Untuk memudahkan pengiraan dan perbandingan masa, masa jenis rentetan perlu ditukar kepada jenis masa untuk pengiraan dan perbandingan terus. Anda boleh menggunakan fungsi STR_TO_DATE() dan UNIX_TIMESTAMP() yang disediakan oleh MySQL untuk menukar masa jenis rentetan kepada jenis masa atau cap masa UNIX, atau anda boleh menggunakan fungsi DATE_FORMAT() untuk menukar jenis masa kepada jenis rentetan. Apabila menggunakan fungsi penukaran, anda perlu memberi perhatian kepada spesifikasi penulisan rentetan format dan penggunaan mod ketat.
Atas ialah kandungan terperinci Bagaimana untuk menukar masa dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!