Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menukar Rentetan Tarikh MySQL dengan Sufiks AM/PM kepada Cap Waktu Unix?

Bagaimana untuk Menukar Rentetan Tarikh MySQL dengan Sufiks AM/PM kepada Cap Waktu Unix?

Susan Sarandon
Susan Sarandonasal
2024-12-07 02:34:15233semak imbas

How to Convert MySQL Date Strings with AM/PM Suffixes to Unix Timestamps?

MySQL: Menukar Rentetan Tarikh kepada Cap Masa Unix

Apabila mendapatkan semula rentetan tarikh daripada pangkalan data, adalah perkara biasa untuk menghadapi masalah dengan pemformatan yang tidak konsisten, seperti cap masa yang termasuk akhiran AM atau PM. Artikel ini menunjukkan cara untuk menukar rentetan tarikh ini kepada cap masa Unix dengan berkesan.

Isu khusus yang dihadapi ialah menukar rentetan dalam format "15 Apr 2012 12:00AM" kepada cap masa Unix. Walaupun percubaan awal menggunakan CONVERT(DATETIME, Sales.SalesDate, 103) dan CONVERT(TIMESTAMP, Sales.SalesDate, 103) mungkin tidak berjaya, penyelesaiannya terletak pada langkah berikut:

Langkah 1: Tukar Rentetan Tarikh kepada DATETIME

Untuk bermula, kita perlu menukar rentetan tarikh ke objek DATETIME menggunakan fungsi STR_TO_DATE. Fungsi ini menjangkakan dua parameter: rentetan tarikh dan rentetan format. Dalam kes ini, rentetan format hendaklah sepadan dengan format rentetan input ("%M %d %Y %h:%i%p").

STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')

Langkah 2: Tukar DATETIME kepada Unix Cap masa

Setelah kita mempunyai objek DATETIME, kita boleh menukarnya kepada cap waktu Unix menggunakan Fungsi UNIX_TIMESTAMP. Fungsi ini mengambil objek DATETIME sebagai hujahnya dan mengembalikan cap waktu Unix yang sepadan.

UNIX_TIMESTAMP(SELECT STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))

Dengan mengikuti langkah ini, kami berjaya menukar rentetan tarikh dengan akhiran AM atau PM kepada format cap waktu Unix yang dikehendaki.

Pertimbangan Pemformatan Tambahan

Jika format output yang diingini berbeza daripada cap waktu Unix lalai, kami boleh memprosesnya selanjutnya menggunakan fungsi FROM_UNIXTIME untuk melaraskan pemformatan. Fungsi ini mengambil dua argumen: cap waktu Unix dan rentetan format baharu.

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p')

Kod ini menukar cap masa Unix kepada rentetan tarikh dalam format "mm-dd-yyyy hh:mm:ss".

Kesimpulan

Dengan memahami cara menukar rentetan tarikh kepada DATETIME objek dan kemudian kepada cap waktu Unix, kami memperoleh fleksibiliti yang lebih besar dalam bekerja dengan data berkaitan tarikh dalam MySQL. Teknik yang digariskan dalam artikel ini menyediakan pendekatan yang boleh dipercayai dan cekap untuk menyelesaikan isu pemformatan biasa dan mengekstrak maklumat berharga daripada rentetan tarikh.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Tarikh MySQL dengan Sufiks AM/PM kepada Cap Waktu Unix?. 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