यहाँ मैं पाया गया सबसे सरल बात है
SELECT Convert(DateTime, DATEDIFF(DAY, 0, GETDATE()))
DatedIFF 1900-1-1 से पहले या बाद के दिनों की पूर्णांक संख्या लौटाता है, और कनवर्ट किए गए डेटाटाइम को आधी रात को उस तारीख पर वापस लाता है।
चूंकि डेटडिफ़ एक पूर्णांक देता है, आप सही ऑफ़सेट प्राप्त करने के लिए दिनों को जोड़ या घटा सकते हैं।
SELECT Convert(DateTime, DATEDIFF(DAY, 0, GETDATE()) + @dayOffset)
यह चक्कर नहीं है यह छोटा है ... लेकिन मुझे लगता है कि यही पूछा जा रहा है। (राउंड ऐड टू एंड ट्रंकेट ... और वह राउंडिंग भी नहीं है, कि सीलिंग, लेकिन फिर से सबसे अधिक संभावना है कि आप क्या चाहते हैं। वास्तव में राउंड ऐड .5 (क्या वह काम करता है?) और ट्रंकेट।
यह पता चला है कि आप GetDate () में 5 जोड़ सकते हैं और यह उम्मीद के मुताबिक काम करता है।
SELECT Convert(DateTime, DATEDIFF(DAY, 0, GETDATE() + .5))
मैंने SQL सर्वर 2008 पर अपने सभी परीक्षण किए, लेकिन मुझे लगता है कि ये फ़ंक्शन 2005 के लिए भी लागू होते हैं।