จะส่ง DATETIME เป็น DATE ใน mysql ได้อย่างไร?


92

คำถามของฉันคือนี่ ฉันมีรายการมากมายและต้องการจัดกลุ่มตามวันที่ แต่แทนที่จะมีวันที่ในฐานข้อมูลฉันมีฟิลด์วันที่และเวลา ฉันจะทำอย่างไร?

select * from follow_queue group by follow_date cast follow_date as date

มันใช้ไม่ได้


2
ลอง: select * from follow_queue group by cast(follow_date as date)ครั้งแรก
NawaMan

3
คุณไม่จำเป็นต้องแคสต์เพียงแค่ใช้ฟังก์ชัน DATE ()
markus

ฟังก์ชัน DATE () ไม่โยนวันที่และเวลาเป็นสตริงหรือไม่? แน่นอนว่ามันใช้ได้กับการจัดกลุ่มตามวันที่ แต่ฉันคิดว่าคำตอบของ NawaMan นั้นถูกต้องกว่าตามวลีของคำถาม
DJDave

คำตอบ:


179

ใช้DATE()ฟังก์ชัน:

select * from follow_queue group by DATE(follow_date)

ฉันจะรับ "จำนวน" สำหรับรายการต่อวันได้อย่างไร เพียงแค่เลือกฟิลด์นับ (*) จากกลุ่ม follow_queue ตามวันที่ (follow_date)?
Zack Burt

3
ได้. select DATE(follow_date), count(*) from follow_queue group by 1
ChssPly76

2
จัดกลุ่มตาม 1? นั่นหมายความว่าอย่างไร?
Zack Burt

11
หมายถึงจัดกลุ่มตามคอลัมน์แรกในรายการเลือกในกรณีDATE(follow_date)นี้ คุณสามารถทำได้ด้วยORDER BYเช่นกัน - ORDER BY 1, 2ตัวอย่างเช่น
ChssPly76

-7

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

http://www.tutorialspoint.com/mysql/mysql-date-time-functions.htm

ใช้ฟังก์ชัน Date โดยตรง หวังว่าจะได้ผล


3
คำตอบที่ถูกต้อง / เหมือนกันถูกระบุไว้ 5 ปีก่อนการโพสต์ของคุณ หากคุณต้องการเสนอไฮเปอร์ลิงก์ให้เพิ่มเป็นความคิดเห็นใต้คำถาม สิ่งนี้ไม่มีประโยชน์สำหรับคำตอบและดูเหมือนว่าอาสาสมัครคนอื่น ๆ หลายคนเห็นด้วย - จากการโหวตลงคะแนน อย่าลังเลที่จะลบหากคุณเห็นด้วยกับตรรกะของฉันและคุณจะกู้คืนคะแนนตัวแทนที่หายไป (หากไม่เป็นเช่นนั้นชุมชนอาจตัดสินใจที่จะดำเนินการนี้ในนามของคุณก็ได้)
mickmackusa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.