Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Função WEEK() do MySQL

A função `WEEK()` do MySQL é usada para extrair o número da semana de uma determinada data. Ele ajuda a organizar e analisar dados com base em intervalos semanais.

Uso
A função `WEEK()` é normalmente usada quando você precisa agrupar ou filtrar registros por semana. Ele retorna um número inteiro que representa o número da semana do ano para uma data especificada.

sql
WEEK(date, [mode])

Nessa sintaxe, `date` é a data da qual você extrairá o número da semana, e `mode` é um argumento opcional que define o dia inicial da semana (por exemplo, domingo ou segunda-feira). Se nenhum modo for especificado, o padrão será o modo 0, em que a semana começa no domingo.

Valores de modo

  • 0: A semana começa no domingo. A semana 1 é a primeira semana com um domingo neste ano.
  • 1: A semana começa na segunda-feira. Segue o padrão ISO-8601, em que a semana 1 é a primeira semana com pelo menos 4 dias no ano novo.
  • 2: A semana começa no domingo. A Semana 1 é a primeira semana com mais da metade de seus dias no ano novo.
  • 3: A semana começa na segunda-feira. A Semana 1 é a primeira semana com mais da metade de seus dias no ano novo.
  • 4: A semana começa no domingo. A semana 1 é a primeira semana com pelo menos 4 dias no ano novo.
  • 5: A semana começa na segunda-feira. A semana 1 é a primeira semana com uma segunda-feira neste ano.
  • 6: A semana começa no sábado. A semana 1 é a primeira semana com um sábado neste ano.
  • 7: A semana começa no domingo. A semana 1 é a primeira semana com um domingo neste ano.

Exemplos

1. Extração básica da semana

sql
SELECT WEEK('2023-10-04');

Este exemplo retorna o número da semana da data `2023-10-04`. Por padrão, a semana começa no domingo.

2. Extração de semana com modo

sql
SELECT WEEK('2023-10-04', 1);

Aqui, a função retorna o número da semana com um modo de `1`, o que significa que a semana começa na segunda-feira, de acordo com o padrão ISO-8601.

3. Usando WEEK() em uma consulta

sql
SELECT COUNT(*)
FROM orders
WHERE WEEK(order_date) = WEEK(CURDATE());

Esse exemplo conta o número de pedidos feitos na semana atual, utilizando `WEEK()` para comparar o número da semana de `order_date` com o número da semana da data atual.

Dicas e práticas recomendadas

  • Escolha o modo correto. Use o argumento `mode` para alinhar-se à sua lógica comercial, especialmente ao lidar com dados internacionais.
  • Cálculos semanais consistentes. Use o mesmo `mode` em todas as suas consultas para manter a consistência nos cálculos semanais.
  • Considerações sobre o desempenho. Ao usar `WEEK()` em cláusulas `WHERE`, considere indexar a coluna de data para melhorar o desempenho da consulta.
  • Manuseio de semanas em um período de dois anos. Esteja ciente de que modos diferentes lidam com semanas que abrangem dois anos de forma diferente; certifique-se de que sua escolha de modo reflita como você deseja que essas semanas sejam tratadas.
  • Combine com outras funções de data. Use `WEEK()` juntamente com funções como `YEAR()` para uma análise de dados mais granular baseada no tempo.
  • Considere os fusos horários. Tenha em mente como os fusos horários podem afetar os cálculos de data se o seu conjunto de dados incluir dados internacionais.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça