ฉันจำเป็นต้องทำการเปรียบเทียบวันที่ใน Mysql โดยไม่ต้องคำนึงถึงองค์ประกอบของเวลาเช่นฉันต้องแปลง '2008-11-05 14:30:00' เป็น '2008-11-05'
ตอนนี้ฉันกำลังทำสิ่งนี้:
SELECT from_days(to_days(my_date))
มีวิธีที่เหมาะสมในการทำเช่นนี้หรือไม่?
ฉันจำเป็นต้องทำการเปรียบเทียบวันที่ใน Mysql โดยไม่ต้องคำนึงถึงองค์ประกอบของเวลาเช่นฉันต้องแปลง '2008-11-05 14:30:00' เป็น '2008-11-05'
ตอนนี้ฉันกำลังทำสิ่งนี้:
SELECT from_days(to_days(my_date))
มีวิธีที่เหมาะสมในการทำเช่นนี้หรือไม่?
คำตอบ:
ใช่ใช้ฟังก์ชันวันที่ :
SELECT date(my_date)
select date(somedate)
เป็นเรื่องปกติมากที่สุด
หากคุณต้องการรองรับรูปแบบอื่นคุณสามารถใช้:
SELECT DATE_FORMAT(your_date, '%Y-%m-%d');
ใน PostgreSQL คุณใช้ฟังก์ชัน TRUNC () แต่ฉันไม่เห็นมันสำหรับ MySQL จาก Googling สั้น ๆ ของฉันดูเหมือนว่าคุณจะต้องร่ายค่า DATETIME ให้เป็นเพียง DATE
date_col = CAST(NOW() AS DATE)
ดูhttp://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html
date_trunc()
(ไม่trunc()
) จะไม่ลบส่วนเวลาใน Postgres มันจะเป็นเพียงการกำหนดให้00:00:00
เป็นสิ่งที่แตกต่าง
วิธีง่ายๆในการดำเนินการdate("d F Y",strtotime($row['date']))
ซึ่ง$row['date']
มาจากข้อความค้นหาของคุณ