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--(--+-YEAR----------+--FROM--SourceDate--)---------->< +-MONTH---------+ +-DAY-----------+ +-HOUR----------+ +-MINUTE--------+ +-SECOND--------+ +-DAYS----------+ +-DAYOFYEAR-----+ +-DAYOFWEEK-----+ +-MONTHS--------+ +-QUARTEROFYEAR-+ +-QUARTERS------+ +-WEEKS---------+ +-WEEKOFYEAR----+ +-WEEKOFMONTH---+ '-ISLEAPYEAR----'
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)
eEXTRACT(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' eEXTRACT (DAYOFYEAR
FROM CURRENT_DATE)
calcula o número de dias encontrados
desde o início do ano atual, masEXTRACT (DAYOFYEAR FROM
CURRENT_TIME)
falha, pois CURRENT_TIME não contém
informações sobre a data.