[ Mysql ] menukar format dd/mm/yyyy ke yyyy-mm-dd

Selalunya masalah seperti ini timbul bilamana tarikh disimpan dalam format varchar. Selain pengaturcara sebelum ini seorang pemalas, ada kemungkinan sesetengah pangkalan data tidak mempunyai datatype date. Atau, ini merupakan data yang datang dari sistem legasi. Bila kita ingin melakukan proses migrasi ke pangkalan data MySQL. Boleh cuba sintaks dibawah.

UPDATE tableA SET tarikhBaru = CONCAT(SUBSTRING_INDEX(
SUBSTRING_INDEX(tarikhLama,'/',3),'/',-1),'-',
SUBSTRING_INDEX(SUBSTRING_INDEX(tarikhLama,'/',2),'/',-1),'-',
SUBSTRING_INDEX(tarikhLama,'/',1));

Dua arahan yang perlu digunakan iaitu CONCAT() dan juga SUBSTRING_INDEX().

CONCAT() merupakan arahan untuk menggabungkan rentetan aksara (string). Boleh juga menggabung data 2 atau 3 column menjadi 1. Formatnya adalah seperti berikut

CONCAT(fieldname1,string,fieldname2,string,fieldname..,string..);

SUBSTRING_INDEX() pula, memecahkan rentetan aksara kepada beberapa perkataan dan disimpan dalam bentuk tatasusunan (array). Formatnya adalah seperti berikut

SUBSTRING_INDEX(fieldname,delimiter,array_key);

Selamat mencuba!

Leave a Reply

Your email address will not be published. Required fields are marked *