ฉันจะจัดกลุ่มคอลัมน์ตามวันที่โดยไม่คำนึงถึงเวลาได้อย่างไร


221

ฉันมีคำสั่งซื้อสินค้ามากมายและฉันพยายามจัดกลุ่มตามวันที่และรวมปริมาณสำหรับวันที่นั้น ฉันจะจัดกลุ่มตามเดือน / วัน / ปีโดยไม่คำนึงถึงเวลาได้อย่างไร

3/8/2010 7:42:00 ควรจัดกลุ่มด้วย 3/8/2010 4:15:00


คำตอบ:


374

ส่ง / แปลงค่าเป็นDateประเภทสำหรับกลุ่มของคุณโดย

GROUP BY CAST(myDateTime AS DATE)

3
คุณรู้ว่าฉันจะทำเช่นเดียวกันกับ LINQ กับ SQL ได้อย่างไร
มัฟฟินแมน

1
@Nick - ไม่แน่ใจ ลองใช้DateTime.Dateดู
Oded

3
- Linq to Sql: DateTime.Date- Entity Framework:EntityFunctions.TruncateTime(myDateTime)
The Muffin Man

1
ฉันเห็นด้วยฉันกำลังตอบสนองต่อ The Muffin Man ที่ถูกถามเกี่ยวกับเรื่องนี้ในบริบท ORM
Niels Brinch

4
ขอบคุณมาก ... มันช่วยแก้ปัญหาของฉันได้ เพิ่ม 'กลุ่มโดย CAST (date_modified AS DATE)' อย่าลืมเพิ่ม (CAST (date_modified AS DATE)) ในรายการเลือก
Mohammed mansoor


16

ใน Sql 2008 ก่อนโดยการออกส่วนวันที่:

GROUP BY CONVERT(CHAR(8),DateTimeColumn,10)

2
สำหรับคำอธิบายเกี่ยวกับฟังก์ชั่นการแปลงและประเภทเวลาวันที่ (ความหมายของ char (8) และ 10) ดูw3schools.com/sql/func_convert.asp
super1ha1


2

นี่คือตัวอย่างที่ฉันใช้เมื่อฉันต้องการนับจำนวนระเบียนสำหรับวันที่ระบุโดยไม่มีการแบ่งเวลา:

select count(convert(CHAR(10), dtcreatedate, 103) ),convert(char(10), dtcreatedate, 103)
FROM dbo.tbltobecounted
GROUP BY CONVERT(CHAR(10),dtcreatedate,103)
ORDER BY CONVERT(CHAR(10),dtcreatedate,103)

1
ORDER BY จะไม่ทำงานอย่างที่ควรจะเป็นเพราะมันจะไม่ถือว่าเป็นวันที่ดังนั้นมันจะจัดเรียงตามวัน
Weapon X

2

นี่คือตัวอย่างที่ใช้งานได้ดีใน oracle

select to_char(columnname, 'DD/MON/yyyy'), count(*) from table_name group by to_char(createddate, 'DD/MON/yyyy');

2

CAST datetime field จนถึงปัจจุบัน

select  CAST(datetime_field as DATE), count(*) as count from table group by CAST(datetime_field as DATE);

0

ฉันเชื่อว่าคุณต้องจัดกลุ่มตามในวันนั้นของเดือนของปี ดังนั้นทำไมไม่ใช้ฟังก์ชัน TRUNK_DATE วิธีการทำงานมีอธิบายไว้ด้านล่าง:

Group By DATE_TRUNC('day' , 'occurred_at_time')

date_trunc ใช้สำหรับ PostgreSQL ไม่ใช่ SQL Server ซึ่งดำเนินการโดยแท็ก OP กำลังค้นหาโซลูชันสำหรับเซิร์ฟเวอร์ SQL
เดฟโฮแกน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.