कुंजी उपयुक्त SQL समय अवधि गणना के साथ DATEADD और DATEDIFF का उपयोग करना है।
declare @datetime datetime;
set @datetime = getdate();
select @datetime;
select dateadd(year,datediff(year,0,@datetime),0);
select dateadd(month,datediff(month,0,@datetime),0);
select dateadd(day,datediff(day,0,@datetime),0);
select dateadd(hour,datediff(hour,0,@datetime),0);
select dateadd(minute,datediff(minute,0,@datetime),0);
select dateadd(second,datediff(second,'2000-01-01',@datetime),'2000-01-01');
select dateadd(week,datediff(week,0,@datetime),-1); --Beginning of week is Sunday
select dateadd(week,datediff(week,0,@datetime),0); --Beginning of week is Monday
ध्यान दें कि जब आप सेकंड तक फ़्लोरिंग कर रहे होते हैं, तो यदि आप 0 का उपयोग करते हैं, तो आपको अक्सर अंकगणितीय अतिप्रवाह प्राप्त होगा। इसलिए एक ज्ञात मान चुनें, जो उस डेटाटाइम से कम होने की गारंटी है जिसे आप फ़्लोर करने का प्रयास कर रहे हैं।