MySQL menyokong pelbagai jenis ungkapan masa seperti DATETIME, TIMESTAMP, DATE dan TIME. Masa jenis ini disimpan dalam MySQL ialah masa UTC.
Gunakan fungsi STR_TO_DATE() dalam MySQL untuk menukar rentetan masa kepada jenis masa. 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:
Dalam rentetan format, pengecam (contohnya, Y, m , d, H , i, s, dsb.) adalah berbeza dalam kes mereka. Huruf besar bermaksud padanan ketat, huruf kecil bermaksud padanan longgar. Contohnya, %m mewakili bulan angka, yang boleh menerima format seperti 01 dan 1 dan %M mewakili bulan Inggeris, yang memerlukan padanan tepat.
Pembatas yang digunakan dalam rentetan format mestilah sama dengan pembatas yang digunakan dalam rentetan sebenar. Jika "-" digunakan sebagai pemisah tarikh dalam rentetan sebenar, rentetan format juga mesti menggunakan "-" sebagai pemisah.
Mod ketat: Apabila rentetan format tidak sepadan dengan rentetan sebenar, jika mod ketat digunakan (seperti menetapkan sql_mode kepada STRICT_ALL_TABLES dalam fail konfigurasi MySQL), ia akan dikembalikan Ralat; jika mod ketat tidak digunakan, NULL dikembalikan.
Selain fungsi STR_TO_DATE(), anda juga boleh menggunakan fungsi UNIX_TIMESTAMP() untuk menukar masa jenis rentetan kepada cap waktu UNIX. Cap masa UNIX ialah integer yang mewakili bilangan saat yang telah berlalu sejak 00:00:00 pada 1 Januari 1970, iaitu 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.
Oleh kerana jenis masa dalam cap waktu UNIX dan MySQL adalah berdasarkan 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, mewakili perbezaan masa antara 21:12:23 pada 14 Ogos 2019 dan 21:12:21 pada 14 Ogos 2019. Iaitu 2 saat.
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".
Atas ialah kandungan terperinci Bagaimana untuk melakukan penukaran masa dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!