ฉันสามารถดึงเดือนและวันโดยใช้,Day(Date())
ฉันไม่สามารถดึงชั่วโมงด้วยMonth(Date())
HOUR(Date())
ฉันได้รับข้อผิดพลาดดังต่อไปนี้
'HOUR' is not a recognized built-in function name.
ฉันจะดึงชั่วโมงได้อย่างไร
ฉันสามารถดึงเดือนและวันโดยใช้,Day(Date())
ฉันไม่สามารถดึงชั่วโมงด้วยMonth(Date())
HOUR(Date())
ฉันได้รับข้อผิดพลาดดังต่อไปนี้
'HOUR' is not a recognized built-in function name.
ฉันจะดึงชั่วโมงได้อย่างไร
คำตอบ:
SELECT DATEPART(HOUR, GETDATE());
... คุณสามารถใช้ได้กับทุกประเภทเช่น:
DATEPART(YEAR, [date])
DATEPART(MONTH, [date])
DATEPART(DAY, [date])
DATEPART(HOUR, [date])
DATEPART(MINUTE, [date])
(หมายเหตุ: ฉันชอบ [] รอบคำที่สงวนไว้วันที่แน่นอนว่าในกรณีที่คอลัมน์ที่มีการประทับเวลาของคุณติดป้ายกำกับว่า "วันที่")
ลองอันนี้ด้วย:
DATEPART(HOUR,GETDATE())
DATEPART(HOUR, [date])
ส่งคืนชั่วโมงในเวลาทหาร (00 ถึง 23) หากคุณต้องการ 01.00 น., 15.00 น. เป็นต้นไปคุณจะต้องดำเนินการดังนี้
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
ลองอันนี้ด้วย:
SELECT CONVERT(CHAR(8),GETDATE(),108)
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
โรงงาน
ฟังก์ชั่น 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
ฉันไม่สามารถแยกเวลาได้ด้วย HOUR (Date ())
มีวิธีการโทรHOUR
(ฉันจะไม่แนะนำให้ใช้แม้ว่าเพราะมีDATEPART
ฟังก์ชั่น) โดยใช้ฟังก์ชั่น ODBC Scalar :
SELECT {fn HOUR(GETDATE())} AS hour
คุณต้องใช้ datepart ()
like
datepart(hour , getdate())
HOUR
แทนที่จะใช้ชวเลขขี้เกียจที่ไม่ใช่สิ่งที่คุณคาดหวังเสมอ (ลองy
) อย่าลังเลที่จะรักษารหัสของคุณเองตามที่คุณต้องการ แต่สำหรับการสอนฉันไม่เห็นด้วยกับการส่งเสริมการจดชวเลขขี้เกียจที่นำไปสู่ความสับสนหรือแย่ลง ดู # 6 ที่นี่blogs.sqlsentry.com/aaronbertrand/ …และsqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/…