La función EXTRACT extrae campos (o calcula valores) de los valores de fecha y hora y de los intervalos.
El resultado es INTEGER para las extracciones de YEAR, MONTH, DAY, HOUR, MINUTE, DAYS, DAYOFYEAR, DAYOFWEEK, MONTHS, QUARTEROFYEAR, QUARTERS, WEEKS, WEEKOFYEAR, y WEEKOFMONTH, pero FLOAT para las extracciones de SECOND y BOOLEAN para las extracciones de ISLEAPYEAR. Si FechaOrigen es NULL, el resultado es NULL independientemente del tipo de extracción.
>>-EXTRACT--(--+-YEAR----------+--FROM--FechaOrigen--)--------->< +-MONTH---------+ +-DAY-----------+ +-HOUR----------+ +-MINUTE--------+ +-SECOND--------+ +-DAYS----------+ +-DAYOFYEAR-----+ +-DAYOFWEEK-----+ +-MONTHS--------+ +-QUARTEROFYEAR-+ +-QUARTERS------+ +-WEEKS---------+ +-WEEKOFYEAR----+ +-WEEKOFMONTH---+ '-ISLEAPYEAR----'
EXTRACT extrae campos individuales de los valores de fecha y hora y de los intervalos. Puede extraer un campo sólo si está presente en el valor de fecha y hora especificado en el segundo parámetro. Se genera un error durante el análisis o la ejecución si el campo solicitado no existe en el tipo de datos.
Extracción | Descripción |
---|---|
YEAR | Año |
MONTH | Mes |
DAY | Día |
HOUR | Hora |
MINUTE (minuto) | Minuto |
SECOND (segundo) | Segundo |
DAYS | Días entre el 1 de enero de 0001 y la FechaOrigen. |
DAYOFYEAR | Día del año |
DAYOFWEEK | Día de la semana: Domingo = 1, Lunes = 2, Martes = 3, Miércoles = 4, Jueves = 5, Viernes = 6, Sábado = 7. |
MONTHS | Meses entre el 1 de enero de 0001 y la FechaOrigen. |
QUARTEROFYEAR | Trimestre del año: enero a marzo = 1, abril a junio = 2, julio a septiembre = 3, octubre a diciembre = 4. |
QUARTERS | Trimestres entre el 1 de enero de 0001 y la FechaOrigen. |
WEEKS | Semanas entre el 1 de enero de 0001 y la FechaOrigen. |
WEEKOFYEAR | Semana del año |
WEEKOFMONTH | Semana del mes |
ISLEAPYEAR | Si es un año bisiesto. |
EXTRACT(YEAR FROM CURRENT_DATE)
yEXTRACT(HOUR FROM LOCAL_TIMEZONE)
se ejecutan sin errores, pero EXTRACT(DAY FROM CURRENT_TIME)
da error.EXTRACT (DAYS FROM DATE '2000-02-29')
calcula
el número de días entre el año 1 y
'2000-02-29', yEXTRACT (DAYOFYEAR FROM CURRENT_DATE)
calcula
el número de días transcurridos desde el inicio del año actual, peroEXTRACT (DAYOFYEAR FROM CURRENT_TIME)
falla
porque CURRENT_TIME no contiene información de fecha.