SQL सर्वर 2005 में मैं बिना समय भाग के वर्तमान तिथि कैसे प्राप्त करूं? मैं उपयोग कर रहा हूं GETDATE()
लेकिन यह चाहूंगा कि इसका समय 00: 00: 00.0 हो
SQL सर्वर 2005 में मैं बिना समय भाग के वर्तमान तिथि कैसे प्राप्त करूं? मैं उपयोग कर रहा हूं GETDATE()
लेकिन यह चाहूंगा कि इसका समय 00: 00: 00.0 हो
जवाबों:
सबसे तेज अगर आपको किसी रिकॉर्डसेट पर चलना है और SQL Server 2008 में तारीख नहीं है
SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
StackOverflow पर दो अलग और उत्कृष्ट उत्तर इसको सहन करते हैं: एक , दो
वर्कर रूपांतरण इसे करने के सबसे बुरे तरीकों में से एक है। बेशक, एक मूल्य के लिए यह कोई फर्क नहीं पड़ता, लेकिन यह एक अच्छी आदत है।
यह तरीका निर्धारक भी है, यदि आप एक गणना किए गए कॉलम को इंडेक्स करना चाहते हैं। यहां तक कि जो लोग SQL सर्वर के बारे में किताबें लिखते हैं वे डेटाइम रूपांतरण के साथ पकड़े जाते हैं
यह तकनीक विस्तार योग्य भी है।
DATEADD(day, DATEDIFF(day, 0, GETDATE()), -1)
DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
DATEADD(month, DATEDIFF(month, 0, GETDATE()), -1)
DATEADD(month, DATEDIFF(month, 0, GETDATE()), 31)
संपादित करें:
जैसा कि मैंने नियतत्ववाद के बारे में उल्लेख किया है, जब तक आप शैली 112 का उपयोग नहीं करते हैं, तब तक varchar तरीके सुरक्षित नहीं हैं।
यहां अन्य उत्तर बताते हैं कि आप इसे कभी भी किसी कॉलम में लागू नहीं करेंगे। यह सही है, लेकिन आप चाहें तो 100k पंक्तियों का चयन कर सकते हैं या डेटलाइन द्वारा एक संगणित कॉलम या ग्रुप जोड़ सकते हैं। फिर आपको इस विधि का उपयोग करना होगा।
अन्य उत्तर में भी शैली 110 का उल्लेख है। यह भाषा या सेट DATEFORMAT सुरक्षित नहीं है और "ब्रिटिश" भाषा सेटिंग के साथ विफल हो जाती है। टिबोर करासज़ी द्वारा डेटाइम डेटेट पर अंतिम गाइड देखें ।