আমি সময় বিবেচনায় না নিয়ে কীভাবে তারিখের সময় কলাম অনুসারে গ্রুপ করব


221

আমার কাছে প্রচুর পণ্যের অর্ডার রয়েছে এবং আমি তারিখ অনুসারে গ্রুপ করার চেষ্টা করছি এবং সেই তারিখের জন্য পরিমাণটি যোগ করব। সময়ের অংশটিকে বিবেচনায় না নিয়ে কীভাবে আমি মাস / দিন / বছর অনুসারে গ্রুপ করব?

3/8/2010 7:42:00 সঙ্গে গ্রুপ করা উচিত 3/8/2010 4:15:00


উত্তর:


374

Dateআপনার গোষ্ঠীর জন্য মানগুলিকে এক ধরণের রূপান্তর করুন / রূপান্তর করুন ।

GROUP BY CAST(myDateTime AS DATE)

3
আপনি কি জানেন কীভাবে আমি এসকিউএল-কে লিনকিউ-র সাথে একই করব?
মাফিন ম্যান

1
@ নিক - নিশ্চিত নয় ব্যবহার করার চেষ্টা করুন DateTime.Date
ওডে

3
- লিনক থেকে স্কেল: DateTime.Date- সত্তা ফ্রেমওয়ার্ক:EntityFunctions.TruncateTime(myDateTime)
মফিন ম্যান

1
আমি একমত, আমি সেই মাফিন ম্যানকে সাড়া দিচ্ছিলাম যিনি এটি সম্পর্কে একটি ওআরএম প্রসঙ্গে জিজ্ঞাসা করেছিলেন।
নিলস ব্রিঞ্চ 18

4
অনেক অনেক ধন্যবাদ ... এটি আমার সমস্যার সমাধান করেছে। 'CAST অনুসারে গ্রুপটি (তারিখ_পরিবর্তিত AS তারিখ)' যোগ করা হয়েছে। নির্বাচন করা ক্লুয়েজে একই (CAST (তারিখ_পরিবর্তিত AS তারিখ)) যুক্ত করতে ভুলবেন না।
মোহাম্মদ মনসুর

25
GROUP BY DATEADD(day, DATEDIFF(day, 0, MyDateTimeColumn), 0)

বা এসকিউএল সার্ভার ২০০৮ এর পরে আপনি কেবলমাত্র Date @ ওডে প্রস্তাবিত হিসাবে কাস্ট করতে পারেন :

GROUP BY CAST(orderDate AS DATE)

16

২০০৮ এর পূর্ব সেক্লায় তারিখের অংশটি বের করে:

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

2
ধর্মান্তরিত ফাংশন এবং তারিখ সময় টাইপ সম্পর্কে ব্যাখ্যা (গৃহস্থালির কাজ (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
অর্ডার বাই অনুমান হিসাবে কাজ করবে না কারণ এটি এটি তারিখ হিসাবে বিবেচনা করবে না তাই এটি দিন অনুসারে বাছাই হবে
অস্ত্র এক্স

2

এখানে উদাহরণটি ওরাকলে ভাল কাজ করে

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

2

আজ অবধি CAST তারিখের ক্ষেত্র

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')

ডেট_ট্রুঙ্ক পোস্টগ্র্রেএসকিউএল এসকিউএল সার্ভারের জন্য নয় যা ট্যাগগুলির মাধ্যমে চলছে, ওপি এসকিউএল সার্ভারের জন্য একটি সমাধান চাইছিল।
ডেভ হোগান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.