दिनांक समय (SQL Server 2005) से घंटे निकालना


179

मैं का उपयोग करके माह और दिन निकाल सकते हैं Day(Date()), Month(Date())। मैं घंटों को, साथ नहीं निकाल सकता HOUR(Date())। मुझे निम्नलिखित त्रुटि मिलती है।

'HOUR' is not a recognized built-in function name.

मैं घंटों कैसे निकाल सकता हूं?

जवाबों:


354
SELECT DATEPART(HOUR, GETDATE());

DATEPART प्रलेखन


11
कृपया HOURआलसी आशुलिपि का उपयोग करने के बजाय ऐसी चीजों को छोड़ दें जो हमेशा वह नहीं हो जो आप अपेक्षा करते हैं (प्रयास करें y)। अपने स्वयं के कोड को बनाए रखने के लिए स्वतंत्र महसूस करें, हालांकि आप पसंद करते हैं, लेकिन शिक्षण के लिए, मैं आलसी शॉर्टहैंड को बढ़ावा देने का विरोध करता हूं जिससे भ्रम या बदतर होता है। # 6 यहाँ देखें ब्लॉग्स .sqlsentry.com
हारून बर्ट्रेंड

3
@AaronBertrand यह "आलसी आशुलिपि" नहीं है, यह प्रलेखित संक्षिप्त रूप है। "आलसी" लघु-रूपों का उपयोग कर रहा है जो न्यूनतम प्रलेखित संस्करण की तुलना में कम हैं, जो काम कर सकते हैं लेकिन अनपेक्षित परिणाम हो सकते हैं।
शुभ अंक

3
@ एसेक्स आपको पूरी तरह से इस बिंदु को याद नहीं करने या मेरे शब्दों के पीछे के कारणों को पढ़ने के लिए मजबूर नहीं कर सकता है। नहीं सब कुछ है कि प्रलेखित एक सबसे अच्छा अभ्यास है।
आरोन बर्ट्रेंड

5
@AaronBertrand मुझे बात मिल गई। लेकिन आप अपने स्वयं के मानकों को लागू करने की कोशिश कर रहे हैं ( कई लोगों के उत्तरों को अनुचित तरीके से संपादित करने की सीमा तक )। आपका "सर्वश्रेष्ठ अभ्यास" कुछ भी नहीं है।
शुभ अंक

29

... आप इसका उपयोग किसी भी प्रकार के ग्रैन्युलैरिटी पर कर सकते हैं:

DATEPART(YEAR, [date])

DATEPART(MONTH, [date]) 

DATEPART(DAY, [date])    

DATEPART(HOUR, [date]) 

DATEPART(MINUTE, [date])

(ध्यान दें: मुझे तारीख आरक्षित शब्द के आस-पास [] पसंद है, हालांकि यह निश्चित रूप से है कि आपके कॉलम में टाइमस्टैम्प "तारीख" अंकित है



9

इसे भी आज़माएं:

   DATEPART(HOUR,GETDATE()) 

2

DATEPART(HOUR, [date]) सैन्य समय (00 से 23) में घंटे लौटाता है यदि आप 1AM, 3PM आदि चाहते हैं, तो आपको इसे बाहर करने की आवश्यकता है:

SELECT Run_Time_Hour =
CASE DATEPART(HOUR, R.date_schedule)
    WHEN 0 THEN  '12AM'
    WHEN 1 THEN   '1AM'
    WHEN 2 THEN   '2AM'
    WHEN 3 THEN   '3AM'
    WHEN 4 THEN   '4AM'
    WHEN 5 THEN   '5AM'
    WHEN 6 THEN   '6AM'
    WHEN 7 THEN   '7AM'
    WHEN 8 THEN   '8AM'
    WHEN 9 THEN   '9AM'
    WHEN 10 THEN '10AM'
    WHEN 11 THEN '11AM'
    WHEN 12 THEN '12PM'
    ELSE CONVERT(varchar, DATEPART(HOUR, R.date_schedule)-12) + 'PM'
END
FROM
    dbo.ARCHIVE_RUN_SCHEDULE R


1
select case when [am or _pm] ='PM' and datepart(HOUR,time_received)<>12 
           then dateadd(hour,12,time_received) 
           else time_received 
       END 
from table

काम करता है


1

DATEPART () फ़ंक्शन का उपयोग किसी दिनांक / समय के किसी एक भाग को वापस करने के लिए किया जाता है, जैसे कि वर्ष, महीना, दिन, घंटा, मिनट, आदि।

datepart    ***Abbreviation

year        ***yy, yyyy 
quarter     ***qq, q 
month       ***mm, m 
dayofyear   ***dy, y 
day         ***dd, d 
week        ***wk, ww 
weekday     ***dw, w 
hour        ***hh 
minute      ***mi, n 
second      ***ss, s 
millisecond ***ms 
microsecond ***mcs 
nanosecond  ***ns 

उदाहरण

select * 
from table001
where datepart(hh,datetime) like 23

0

मैं घंटे नहीं निकाल सकता, HOUR (दिनांक) के साथ

ODBC स्केलर फ़ंक्शंस का उपयोग करके कॉल करने का एक तरीका है HOUR(मैं इसे उपयोग करने की सलाह नहीं दूंगा क्योंकि DATEPARTफ़ंक्शन है) :

SELECT {fn HOUR(GETDATE())} AS hour

LiveDemo


-2

आपको दिनांक () का उपयोग करना चाहिए

like 


datepart(hour , getdate())

8
आपके योगदान का क्या मतलब है, जो इस सवाल का लगभग हर दूसरे "उत्तर" में प्रदान की गई जानकारी को दोहराता है?
सिंडी मेइस्टर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.