- 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> )
Argumentos¶
- date_or_timestamp_expr
- Uma data ou um carimbo de data/hora, ou uma expressão que pode ser avaliada como uma data ou um carimbo de data/hora. 
Retornos¶
Esta função retorna um valor do tipo NUMBER.
Notas de uso¶
| Nome da função | Parte da data extraída da data de entrada ou do carimbo de data/hora | Valores possíveis | 
|---|---|---|
| YEAR | Ano | Qualquer ano válido (por exemplo, 2025) | 
| YEAROFWEEK [1] | Ano ao qual a semana extraída pertence | Qualquer ano válido (por exemplo, 2025) | 
| YEAROFWEEKISO | Ano ao qual a semana extraída pertence usando a semântica ISO | Qualquer ano válido (por exemplo, 2025) | 
| DAY , DAYOFMONTH | Dia (número) do mês | 1 a 31 | 
| DAYOFWEEK [1] | Dia (número) da semana | 0 a 7 | 
| DAYOFWEEKISO | Dia (número) da semana usando a 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 | Semana (número) do ano usando a 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 do ano e dias úteis.
Exemplos¶
O exemplo a seguir demonstra o uso das funções YEAR, QUARTER, MONTH, DAY, DAYOFWEEK e DAYOFYEAR:
SELECT '2025-04-11T23: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 |
|-------------------------+------+-----------------+-------+-----+--------------+-------------|
| 2025-04-11 23:39:20.123 | 2025 |               2 |     4 |  11 |           11 |         101 |
+-------------------------+------+-----------------+-------+-----+--------------+-------------+
O exemplo a seguir demonstra o uso das funções WEEK, WEEKISO, WEEKOFYEAR, YEAROFWEEK e YEAROFWEEKISO. O parâmetro de sessão WEEK_OF_YEAR_POLICY é definido como 1, de modo que a primeira semana do ano é a semana que contém o dia 1º de janeiro desse 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 exemplo a seguir 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 quatro dias desse ano. Neste exemplo, a semana de 27 de dezembro de 2015 a 2 de janeiro de 2016 é considerada a última semana de 2015, não a primeira semana de 2016. Embora a semana contenha a sexta-feira, 1º de janeiro de 2016, menos da metade da semana é em 2016.
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 exemplo a seguir 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;
O carimbo de data/hora na consulta a seguir é de 5 de abril de 2025, que foi um sábado. A função DAYOFWEEK retorna 7 para sábado, pois o primeiro dia da semana está definido como domingo. A função DAYOFWEEKISO retorna 6 porque o primeiro dia da semana usando a semântica ISO é segunda-feira. Para obter mais informações sobre a semântica ISO e o parâmetro WEEK_START, consulte Semanas do ano e dias úteis.
SELECT '2025-04-05T23: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 |
|-------------------------+-------------+-----------------|
| 2025-04-05 23:39:20.123 |           7 |               6 |
+-------------------------+-------------+-----------------+
O exemplo a seguir também 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 = 1;
SELECT '2025-04-05T23: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 |
|-------------------------+-------------+-----------------|
| 2025-04-05 23:39:20.123 |           6 |               6 |
+-------------------------+-------------+-----------------+
Para obter mais exemplos, consulte Como trabalhar com valores de data e hora.
Para obter exemplos mais detalhados das funções relacionadas à semana (DAYOFWEEK, WEEK, WEEKOFYEAR, YEAROFWEEK, e assim por diante), consulte Semanas do ano e dias úteis.