Bagaimana untuk melakukan penukaran masa dalam MySQL

王林
Lepaskan: 2023-05-28 12:05:21
ke hadapan
1528 orang telah melayarinya

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)
Salin selepas log masuk

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');
Salin selepas log masuk

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:

  1. 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.

  2. 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.

  3. 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');
Salin selepas log masuk

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');
Salin selepas log masuk

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)
Salin selepas log masuk

Antaranya, tarikh ialah masa untuk ditukar, dan format ialah format rentetan yang dikembalikan. Contohnya:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan