- Categorias:
YEAR* / DAY* / WEEK* / MONTH / QUARTER¶
Extrai a parte da data correspondente de uma data ou carimbo de data/hora.
Estas funções são alternativas ao uso da função DATE_PART (ou EXTRACT) com a parte de data equivalente (consulte Partes de data e hora com suporte).
- Consulte também:
Sintaxe¶
YEAR( <date_or_timestamp_expr> )
YEAROFWEEK( <date_or_timestamp_expr> )
YEAROFWEEKISO( <date_or_timestamp_expr> )
DAY( <date_or_timestamp_expr> )
DAYOFMONTH( <date_or_timestamp_expr> )
DAYOFWEEK( <date_or_timestamp_expr> )
DAYOFWEEKISO( <date_or_timestamp_expr> )
DAYOFYEAR( <date_or_timestamp_expr> )
WEEK( <date_or_timestamp_expr> )
WEEKOFYEAR( <date_or_timestamp_expr> )
WEEKISO( <date_or_timestamp_expr> )
MONTH( <date_or_timestamp_expr> )
QUARTER( <date_or_timestamp_expr> )
Notas de uso¶
Nome da função |
Parte de data extraída da data de entrada / carimbo de data/hora |
Valores possíveis |
---|---|---|
YEAR |
Ano |
Qualquer ano válido (por exemplo, 2017) |
YEAROFWEEK [1] |
Ano ao qual a semana extraída pertence |
Qualquer ano válido (por exemplo, 2017) |
YEAROFWEEKISO |
O mesmo que YEAROFWEEK, exceto que usa semântica ISO |
Qualquer ano válido (por exemplo, 2017) |
DAY , DAYOFMONTH |
Dia (número) do mês |
1 a 31 |
DAYOFWEEK [1] |
Dia (número) da semana |
0 a 7 |
DAYOFWEEKISO |
O mesmo que DAYOFWEEK, exceto que usa semântica ISO |
1 a 7 |
DAYOFYEAR |
Dia (número) do ano |
1 a 366 |
WEEK , WEEKOFYEAR [1] |
Semana (número) do ano |
1 a 54 |
WEEKISO |
O mesmo que WEEK, exceto que usa semântica ISO |
1 a 53 |
MONTH |
Mês (número) do ano |
1 a 12 |
QUARTER |
Trimestre (número) do ano |
1 a 4 |
[1] Resultados ditados pelos valores definidos para os parâmetros de sessão WEEK_OF_YEAR_POLICY e/ou WEEK_START.
Para obter mais detalhes sobre o parâmetro e semântica ISO, consulte Semanas de calendário e dias úteis.
Exemplos¶
O seguinte demonstra o uso das funções YEAR
, MONTH
, DAY
, DAYOFWEEK
, DAYOFYEAR
e QUARTER
:
SELECT '2013-05-08T23:39:20.123-07:00'::TIMESTAMP AS tstamp, YEAR(tstamp) AS "YEAR", QUARTER(tstamp) AS "QUARTER OF YEAR", MONTH(tstamp) AS "MONTH", DAY(tstamp) AS "DAY", DAYOFMONTH(tstamp) AS "DAY OF MONTH", DAYOFYEAR(tstamp) AS "DAY OF YEAR"; +-------------------------+------+-----------------+-------+-----+--------------+-------------+ | TSTAMP | YEAR | QUARTER OF YEAR | MONTH | DAY | DAY OF MONTH | DAY OF YEAR | |-------------------------+------+-----------------+-------+-----+--------------+-------------| | 2013-05-08 23:39:20.123 | 2013 | 2 | 5 | 8 | 8 | 128 | +-------------------------+------+-----------------+-------+-----+--------------+-------------+
O seguinte demonstra o uso das funções WEEK
, WEEKISO
, WEEKOFYEAR
, YEAROFWEEK
e YEAROFWEEKISO
. O parâmetro da sessão WEEK_OF_YEAR_POLICY é definido para indicar que a primeira semana do ano é a semana que contém o dia 1.º de janeiro daquele ano.
ALTER SESSION SET WEEK_OF_YEAR_POLICY = 1;SELECT '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp, WEEK(tstamp) AS "WEEK", WEEKISO(tstamp) AS "WEEK ISO", WEEKOFYEAR(tstamp) AS "WEEK OF YEAR", YEAROFWEEK(tstamp) AS "YEAR OF WEEK", YEAROFWEEKISO(tstamp) AS "YEAR OF WEEK ISO" ; +-------------------------+------+----------+--------------+--------------+------------------+ | TSTAMP | WEEK | WEEK ISO | WEEK OF YEAR | YEAR OF WEEK | YEAR OF WEEK ISO | |-------------------------+------+----------+--------------+--------------+------------------| | 2016-01-02 23:39:20.123 | 1 | 53 | 1 | 2016 | 2015 | +-------------------------+------+----------+--------------+--------------+------------------+
O seguinte também demonstra o uso das funções WEEK
, WEEKISO
, WEEKOFYEAR
, YEAROFWEEK
e YEAROFWEEKISO
. O parâmetro de sessão WEEK_OF_YEAR_POLICY é definido para indicar que a primeira semana do ano é a primeira semana do ano que contém pelo menos 4 dias daquele ano. (Assim, por exemplo, a semana de 26 de dezembro de 2010 até 1.º de janeiro de 2011 é considerada a última semana de 2010, não a primeira semana de 2011, porque embora contenha 1.º de janeiro de 2011, menos da metade da semana está em 2011).
ALTER SESSION SET WEEK_OF_YEAR_POLICY = 0;SELECT '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp, WEEK(tstamp) AS "WEEK", WEEKISO(tstamp) AS "WEEK ISO", WEEKOFYEAR(tstamp) AS "WEEK OF YEAR", YEAROFWEEK(tstamp) AS "YEAR OF WEEK", YEAROFWEEKISO(tstamp) AS "YEAR OF WEEK ISO" ; +-------------------------+------+----------+--------------+--------------+------------------+ | TSTAMP | WEEK | WEEK ISO | WEEK OF YEAR | YEAR OF WEEK | YEAR OF WEEK ISO | |-------------------------+------+----------+--------------+--------------+------------------| | 2016-01-02 23:39:20.123 | 53 | 53 | 53 | 2015 | 2015 | +-------------------------+------+----------+--------------+--------------+------------------+
O seguinte demonstra o uso das funções DAYOFWEEK
e DAYOFWEEKISO
. O parâmetro da sessão WEEK_START é definido para indicar que a semana começa no domingo.
ALTER SESSION SET WEEK_START = 7;SELECT '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp, DAYOFWEEK(tstamp) AS "DAY OF WEEK", DAYOFWEEKISO(tstamp) AS "DAY OF WEEK ISO" ; +-------------------------+-------------+-----------------+ | TSTAMP | DAY OF WEEK | DAY OF WEEK ISO | |-------------------------+-------------+-----------------| | 2016-01-02 23:39:20.123 | 7 | 6 | +-------------------------+-------------+-----------------+
O seguinte demonstra o uso das funções DAYOFWEEK
e DAYOFWEEKISO
. O parâmetro da sessão WEEK_START é definido para indicar que a semana começa na segunda-feira.
ALTER SESSION SET WEEK_START = 0;SELECT '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp, DAYOFWEEK(tstamp) AS "DAY OF WEEK", DAYOFWEEKISO(tstamp) AS "DAY OF WEEK ISO" ; +-------------------------+-------------+-----------------+ | TSTAMP | DAY OF WEEK | DAY OF WEEK ISO | |-------------------------+-------------+-----------------| | 2016-01-02 23:39:20.123 | 6 | 6 | +-------------------------+-------------+-----------------+
Para obter mais exemplos, consulte Como trabalhar com valores de data e hora.
Para exemplos mais detalhados das funções relacionadas à semana (DAYOFWEEK, WEEK, WEEKOFYEAR, YEAROFWEEK etc.), consulte Semanas de calendário e dias úteis.