একটি ডেটটাইম (এসকিউএল সার্ভার 2005) থেকে ঘন্টা তোলা


179

আমি ব্যবহার দ্বারা মাস এবং দিন নিষ্কাশন করতে পারেন Day(Date()), Month(Date())। আমি কয়েক ঘন্টা নিষ্কাশন করতে পারি না HOUR(Date())। আমি নিম্নলিখিত ত্রুটি পেয়েছি।

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

আমি কীভাবে ঘন্টা উত্তোলন করতে পারি?

উত্তর:


353
SELECT DATEPART(HOUR, GETDATE());

DATEPART ডকুমেন্টেশন


11
HOURঅলস শর্টহ্যান্ড ব্যবহার না করে দয়া করে এমন জিনিস বানান যা আপনার প্রত্যাশা মতো না (চেষ্টা করুন y)। আপনার পছন্দ মতো আপনার নিজের কোড বজায় রাখতে নির্দ্বিধায়, তবে শেখানোর জন্য, আমি অলস শর্টহ্যান্ড প্রচারের বিরোধিতা করছি যা বিভ্রান্তি বা আরও খারাপের দিকে পরিচালিত করে। # 6 এখানে ব্লগস.এসএইচএলএনএসটিএইআরোনবার্ট্র্যান্ড / and এইচএইচএল্লব্লোগ.
অ্যারন

3
@ অ্যারোনবার্ট্র্যান্ড এটি "অলস শর্টহ্যান্ড" নয়, এটি শর্ট ফর্মের নথিযুক্ত। "অলস" শর্ট-ফর্মগুলি ব্যবহার করছে যা ন্যূনতম নথিভুক্ত সংস্করণের চেয়ে কম, যা কাজ করতে পারে তবে অনিচ্ছাকৃত পরিণতি হতে পারে।
অস্পেক্স

3
@ অ্যাসপেক্স আপনাকে সম্পূর্ণরূপে বিন্দুটি মিস করতে বা আমার কথার পিছনে কারণগুলি পড়তে বাধ্য করতে পারে না। নথিভুক্ত সমস্ত কিছুই একটি সেরা অনুশীলন নয়।
হারুন বারট্র্যান্ড

5
@ অ্যারোনবার্ট্র্যান্ড আমি পয়েন্টটি পেয়েছি। তবে আপনি নিজের মানকে ( একাধিক লোকের উত্তরকে ভুলভাবে সম্পাদনার মাত্রায়) প্রয়োগ করার চেষ্টা করছেন । আপনার "সেরা অনুশীলন" সাজানোর কিছুই নয়।
অস্পেক্স

29

... আপনি এটি কোনও গ্রানুলারিটির ধরণের উপর যেমন ব্যবহার করতে পারেন:

DATEPART(YEAR, [date])

DATEPART(MONTH, [date]) 

DATEPART(DAY, [date])    

DATEPART(HOUR, [date]) 

DATEPART(MINUTE, [date])

(দ্রষ্টব্য: যদিও আমি তারিখ সংরক্ষিত শব্দটির কাছাকাছি [] পছন্দ করি Of অবশ্যই এটি ক্ষেত্রে আপনার টাইমস্ট্যাম্প সহ কলামে "তারিখ" লেবেলযুক্ত থাকে)



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    ***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 (তারিখ ()) সহ ঘন্টাগুলি বের করতে পারি না

কল করার জন্য একটি উপায় নেই HOUR(আমি না থাকায় যদিও ব্যবহার করতে না করার পরামর্শ দিচ্ছি DATEPARTফাংশন) ব্যবহার ODBC স্কালে কার্যাবলী :

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

LiveDemo


-2

আপনাকে অবশ্যই ডেট পার্ট () ব্যবহার করতে হবে

like 


datepart(hour , getdate())

8
আপনার অবদানের মূল বিষয় কী, যা এই প্রশ্নের প্রায় প্রতিটি "উত্তর" সরবরাহিত তথ্যের পুনরাবৃত্তি করে?
সিন্ডি মিস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.