bagaimana cara mengubah string menjadi tanggal di mysql?


149

Saya memiliki stringkolom yang bertindak sebagai a datedan saya ingin memilihnya sebagai date.

Apa itu mungkin?

Format data sampel saya adalah; month/day/year->12/31/2011

Jawaban:


258

Seperti yang dikatakan di MySQL Menggunakan kolom string dengan teks tanggal sebagai bidang tanggal , Anda dapat melakukannya

SELECT  STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM    yourtable

Anda juga bisa menangani string tanggal ini dalam WHEREklausa. Sebagai contoh

SELECT whatever
  FROM yourtable
 WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAY

Anda dapat menangani semua jenis tata letak tanggal / waktu dengan cara ini. Silakan merujuk ke penentu format untuk DATE_FORMAT()fungsi untuk melihat apa yang dapat Anda masukkan ke dalam parameter kedua STR_TO_DATE().


6
Saya pikir itu harus INTERVAL 7 HARI bukannya HARI
Feras Odeh

1
Saya memiliki kolom char seperti format "dd-mmm-yyyy". Bagaimana cara saya meminta format "dd-mm-yyyy"?
MAX

51
STR_TO_DATE('12/31/2011', '%m/%d/%Y')

Tanggal berapa disimpan sebagai format DD / MM / YYYY seperti 31/11/1015?
Vipul Hadiya

2
@VipulHadiya ubah string format tanggal menjadi %d/%m/%Yseperti jadi STR_TO_DATE('31/11/1015', '%d/%m/%Y')Ingatlah bahwa output akan YYYY-MM-DDberformat sebagai DATE tipe data.
fyrye

1
jawaban khusus kode hanya bernilai rendah di StackOverflow. Harap perbaiki jawaban yang benar ini.
mickmackusa


10

Berikut dua contoh lainnya.

Untuk menampilkan hari, bulan, dan tahun, Anda dapat menggunakan:

select STR_TO_DATE('14/02/2015', '%d/%m/%Y');

Yang menghasilkan:

2015-02-14

Untuk juga menampilkan waktu, Anda dapat menggunakan:

select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');

Yang menghasilkan:

2017-02-14 23:38:12

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.