ส่วนประกอบเวลาแถบ Mysql จากวันที่และเวลา


90

ฉันจำเป็นต้องทำการเปรียบเทียบวันที่ใน Mysql โดยไม่ต้องคำนึงถึงองค์ประกอบของเวลาเช่นฉันต้องแปลง '2008-11-05 14:30:00' เป็น '2008-11-05'

ตอนนี้ฉันกำลังทำสิ่งนี้:

SELECT from_days(to_days(my_date))

มีวิธีที่เหมาะสมในการทำเช่นนี้หรือไม่?

คำตอบ:



14

select date(somedate) เป็นเรื่องปกติมากที่สุด

หากคุณต้องการรองรับรูปแบบอื่นคุณสามารถใช้:

SELECT DATE_FORMAT(your_date, '%Y-%m-%d');

2
DATE_FORMAT มีประโยชน์มากสำหรับการแยกองค์ประกอบปีเท่านั้นเช่น ขอขอบคุณ.
Mario Awad

3

ใน 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


1
date_trunc()(ไม่trunc()) จะไม่ลบส่วนเวลาใน Postgres มันจะเป็นเพียงการกำหนดให้00:00:00เป็นสิ่งที่แตกต่าง
a_horse_with_no_name

0

วิธีง่ายๆในการดำเนินการdate("d F Y",strtotime($row['date']))ซึ่ง$row['date']มาจากข้อความค้นหาของคุณ


-5

คุณสามารถใช้ ToShortDateString();


นั่นไม่ใช่ฟังก์ชัน C # ใช่หรือไม่? คำถามคือหลังจากโซลูชัน MySQL
andrewsi

เป็น C # และไม่ได้ลบการประทับเวลา: แปลงค่าของวัตถุ DateTime ปัจจุบันเป็นการแสดงสตริงวันที่แบบสั้นที่เทียบเท่ากัน
Nizar B.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.