Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menukar masa dalam MySQL

Bagaimana untuk menukar masa dalam MySQL

PHPz
PHPzasal
2023-04-20 10:10:074245semak imbas

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:

  1. Kes pengecam: pengecam dalam rentetan format (seperti Y, m, d, H , i, s, dsb.) 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: Pembatas yang digunakan dalam rentetan format mesti konsisten dengan pembatas yang digunakan dalam rentetan sebenar. Contohnya, jika "-" digunakan sebagai pemisah tarikh dalam rentetan sebenar, maka "-" juga mesti digunakan sebagai pemisah dalam rentetan format.
  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), ralat akan dikembalikan jika mod ketat tidak digunakan , NULL akan 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 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!

Kenyataan:
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