Soy capaz de extraer el mes y día mediante el uso de Day(Date())
, Month(Date())
. No puedo extraer horas, con HOUR(Date())
. Obtuve el siguiente error.
'HOUR' is not a recognized built-in function name.
¿Cómo puedo extraer horas?
Soy capaz de extraer el mes y día mediante el uso de Day(Date())
, Month(Date())
. No puedo extraer horas, con HOUR(Date())
. Obtuve el siguiente error.
'HOUR' is not a recognized built-in function name.
¿Cómo puedo extraer horas?
Respuestas:
SELECT DATEPART(HOUR, GETDATE());
... puede usarlo en cualquier tipo de granularidad, es decir:
DATEPART(YEAR, [date])
DATEPART(MONTH, [date])
DATEPART(DAY, [date])
DATEPART(HOUR, [date])
DATEPART(MINUTE, [date])
(nota: sin embargo, me gusta la palabra [] alrededor de la fecha reservada. Por supuesto, en caso de que su columna con marca de tiempo esté etiquetada como "fecha")
prueba este también:
DATEPART(HOUR,GETDATE())
DATEPART(HOUR, [date])
devuelve la hora en tiempo militar (00 a 23) Si desea 1 a.m., 3 p.m., etc., debe ponerlo en caso:
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
Prueba este también:
SELECT CONVERT(CHAR(8),GETDATE(),108)
La función DATEPART () se usa para devolver una sola parte de una fecha / hora, como año, mes, día, hora, minuto, etc.
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
Ejemplo
select *
from table001
where datepart(hh,datetime) like 23
No puedo extraer horas, con HOUR (Fecha ())
Hay una manera de llamar HOUR
(aunque no recomendaría usarlo porque hay una DATEPART
función) usando las funciones escalares ODBC :
SELECT {fn HOUR(GETDATE())} AS hour
debes usar datepart ()
like
datepart(hour , getdate())
HOUR
lugar de usar la taquigrafía perezosa que no siempre es lo que espera (intentey
). Siéntase libre de mantener su propio código como quiera, pero para enseñar, me opongo a promover la taquigrafía perezosa que genera confusión o algo peor. Ver # 6 aquí blogs.sqlsentry.com/aaronbertrand/… y sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/…