Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

टी-एसक्यूएल डेटाटाइम फ़ंक्शन का उपयोग करने के साथ निकटतम मिनट और निकटतम घंटों तक गोल होता है

declare @dt datetime

set @dt = '09-22-2007 15:07:38.850'

select dateadd(mi, datediff(mi, 0, @dt), 0)
select dateadd(hour, datediff(hour, 0, @dt), 0)

वापस आ जाएगा

2007-09-22 15:07:00.000
2007-09-22 15:00:00.000

उपरोक्त प्रश्न में पूछे गए परिणामों का उत्पादन करते हुए, सेकंड और मिनटों को छोटा कर देता है। जैसा कि @OMG Ponies ने बताया, यदि आप ऊपर/नीचे चक्कर लगाना चाहते हैं, तो आप क्रमशः आधा मिनट या आधा घंटा जोड़ सकते हैं, फिर छोटा करें:

select dateadd(mi, datediff(mi, 0, dateadd(s, 30, @dt)), 0)
select dateadd(hour, datediff(hour, 0, dateadd(mi, 30, @dt)), 0)

और आपको मिलेगा:

2007-09-22 15:08:00.000
2007-09-22 15:00:00.000

SQL सर्वर 2008 में दिनांक डेटा प्रकार जोड़े जाने से पहले, मैं केवल दिनांक प्राप्त करने के लिए डेटाटाइम से समय भाग को छोटा करने के लिए उपर्युक्त विधि का उपयोग करूंगा। विचार विचाराधीन डेटाटाइम और एक निश्चित समय बिंदु (0) के बीच दिनों की संख्या निर्धारित करना है , जो परोक्ष रूप से 1900-01-01 00:00:00.000 . पर डाला जाता है ):

declare @days int
set @days = datediff(day, 0, @dt)

और फिर उन दिनों की संख्या को निश्चित समय बिंदु में जोड़ें, जो आपको 00:00:00.000 पर सेट समय के साथ मूल तिथि देता है :

select dateadd(day, @days, 0)

या अधिक संक्षेप में:

select dateadd(day, datediff(day, 0, @dt), 0)

किसी भिन्न दिनांक भाग का उपयोग करना (उदा. hour , mi ) तदनुसार काम करेगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2008 नव निर्मित उपयोगकर्ता के साथ लॉगिन नहीं कर सकता

  2. क्या कोई विदेशी कुंजी NULL और/या डुप्लिकेट हो सकती है?

  3. SQL सर्वर डेटाबेस में सभी चेक बाधाओं की सूची कैसे प्राप्त करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 85

  4. यहां तीन कारण बताए गए हैं कि आप अपने SQL इंस्टेंस में चरम गतिविधि क्यों देख सकते हैं

  5. SQL सर्वर के साथ डर्टी रीड प्रॉब्लम को समझना