A função EXTRACT extrai campos (ou calcula valores) de valores e intervalos data/hora.
O resultado é INTEGER para extrações de YEAR, MONTH, DAY, HOUR, MINUTE, DAYS, DAYOFYEAR, DAYOFWEEK, MONTHS, QUARTEROFYEAR, QUARTERS, WEEKS, WEEKOFYEAR e WEEKOFMONTH, mas FLOAT para extrações de SECOND e BOOLEAN para extrações de ISLEAPYEAR. Se SourceDate for NULL, o resultado é NULL independentemente do tipo de extração.
EXTRACT extrai campos individuais de valores e intervalos datetime. Você pode extrair um campo somente se ele estiver presente no valor de data/hora especificado no segundo parâmetro. Se o campo solicitado não existir no tipo de dados, será gerada uma análise de tempo ou um erro de tempo de execução.
Extract | Descrição |
---|---|
YEAR | Ano |
MONTH | Mês |
DAY | Dia |
HOUR | Hora |
MINUTE | Minuto |
SECOND | Segundo |
DAYS | Dias encontrados entre 1 de Janeiro de 0001 e SourceDate. |
DAYOFYEAR | Dia do ano |
DAYOFWEEK | Dia da semana: Domingo = 1, Segunda-feira = 2, Terça-feira = 3, Quarta-feira = 4, Quinta-feira = 5, Sexta-feira = 6, Sábado = 7. |
MONTHS | Meses encontrados entre 1 de Janeiro de 0001 e SourceDate. |
QUARTEROFYEAR | Quartil do ano: De Janeiro a Março = 1, de Abril a Junho = 2, de Julho a Setembro = 3, de Outubro a Dezembro = 4. |
QUARTERS | Quartis encontrados entre 1 de Janeiro de 0001 e SourceDate. |
WEEKS | Semanas encontradas entre 1 de Janeiro de 0001 e SourceDate. |
WEEKOFYEAR | Semana do ano |
WEEKOFMONTH | Semana do mês |
ISLEAPYEAR | Se é um ano binário |
EXTRACT(YEAR FROM CURRENT_DATE)e
EXTRACT(HOUR FROM LOCAL_TIMEZONE)os dois funcionam com erro, mas
EXTRACT(DAY FROM CURRENT_TIME)falha.
EXTRACT (DAYS FROM DATE '2000-02-29')calcula o número de dias encontrados desde o ano 1 a '2000-02-29' e
EXTRACT (DAYOFYEAR FROM CURRENT_DATE)calcula o número de dias encontrados desde o início do ano atual, mas
EXTRACT (DAYOFYEAR FROM CURRENT_TIME)falha, pois CURRENT_TIME não contém informações sobre a data.