Mysql strip time component dari datetime

90

Saya perlu melakukan perbandingan tanggal di Mysql tanpa memperhitungkan komponen waktu yaitu saya perlu mengubah '2008-11-05 14:30:00' menjadi '2008-11-05'

Saat ini saya melakukan ini:

SELECT from_days(to_days(my_date))

Apakah ada cara yang tepat untuk melakukan ini?

abarax
sumber

Jawaban:

160

Ya, gunakan fungsi tanggal :

SELECT date(my_date)
Robert Gamble
sumber
14

select date(somedate) adalah yang paling umum.

Jika Anda perlu mengakomodasi format lain, Anda dapat menggunakan:

SELECT DATE_FORMAT(your_date, '%Y-%m-%d');
Komunitas
sumber
2
DATE_FORMAT sangat berguna untuk mengekstraksi komponen tahun hanya sebagai contoh. Terima kasih.
Mario Awad
3

Di PostgreSQL Anda menggunakan fungsi TRUNC (), tetapi saya tidak melihatnya untuk MySQL. Dari Googling singkat saya, sepertinya Anda harus mentransmisikan nilai DATETIME Anda menjadi DATE saja.

date_col = CAST(NOW() AS DATE)

Lihat http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

Andy Lester
sumber
1
date_trunc()(tidak trunc()) tidak akan benar-benar menghapus bagian waktu di Postgres. Itu hanya akan mengaturnya ke 00:00:00sesuatu yang berbeda.
a_horse_with_no_name
0

Hanya cara sederhana untuk melakukannya date("d F Y",strtotime($row['date']))di mana $row['date']berasal dari permintaan Anda

Rajeev Kumar
sumber
-5

Anda bisa menggunakan ToShortDateString();

Jupirao Bolado
sumber
Bukankah itu fungsi C #? Pertanyaannya adalah setelah solusi MySQL
andrewsi
Ini C # dan sebenarnya tidak menghapus stempel waktu: Mengonversi nilai objek DateTime saat ini ke representasi string tanggal pendek yang setara.
Nizar B.