Resumo : neste tutorial, você aprenderá como usar a WEEK()
função MySQL para obter o número da semana de uma data.
Introdução à função MySQL WEEK()
Normalmente, um ano tem 365 dias para um ano normal e 366 dias para um ano bissexto. Um ano é então dividido em semanas, com cada semana tendo exatamente 7 dias. Portanto, durante um ano, geralmente temos 365/7 = 52 semanas que variam de 1 a 52.
A função WEEK() permite obter o número da semana de uma data específica:
WEEK(date, mode);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
date
: Esta é a data em que você deseja obter o número da semana.mode
: este é um argumento opcional que determina como a função calcula o número da semana. Especifica se a semana deve começar na segunda ou no domingo e o número da semana retornado deve estar entre 0 e 52 ou 0 e 53.
A WEEK()
função retorna um número de semana baseado na ISO 8601:1988 .
Se você ignorar o mode
argumento, a WEEK()
função usará o valor da default_week_format
variável do sistema por padrão.
Para obter o valor atual da default_week_format
variável, você usa a SHOW VARIABLES
instrução a seguir:
SHOW VARIABLES LIKE 'default_week_format';
Linguagem de código: JavaScript ( javascript )
Saída:
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| default_week_format | 0 |
+---------------------+-------+
1 row in set (0.01 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A saída mostra que o valor padrão default_week_format
é 0.
A tabela a seguir ilustra como o argumento mode influencia a WEEK
função:
Modo | Primeiro dia da semana | Faixa | A semana 1 é a primeira semana… |
---|---|---|---|
0 | Domingo | 0-53 | com um domingo neste ano |
1 | Segunda-feira | 0-53 | com 4 ou mais dias este ano |
2 | Domingo | 1-53 | com um domingo neste ano |
3 | Segunda-feira | 1-53 | com 4 ou mais dias este ano |
4 | Domingo | 0-53 | com 4 ou mais dias este ano |
5 | Segunda-feira | 0-53 | com uma segunda-feira neste ano |
6 | Domingo | 1-53 | com 4 ou mais dias este ano |
7 | Segunda-feira | 1-53 | com uma segunda-feira neste ano |
O ” with 4 or more days this year
” na tabela acima significa:
- Se a semana contiver 1º de janeiro e tiver 4 ou mais dias no ano novo, a semana será numerada como semana 1.
- Caso contrário, a semana será numerada como a última semana do ano anterior e a semana seguinte será a semana 1.
Exemplo de função MySQL WEEK()
Vejamos alguns exemplos de uso da WEEK()
função.
1) Exemplo simples de função MySQL WEEK()
O exemplo a seguir usa a WEEK()
função para obter o número da semana da data '2023-10-16'
:
SELECT WEEK('2023-10-16') as week_no;
Linguagem de código: JavaScript ( javascript )
Saída:
+---------+
| week_no |
+---------+
| 42 |
+---------+
1 row in set (0.01 sec)
Linguagem de código: JavaScript ( javascript )
2) Usando a função WEEK() com dados da tabela
Usaremos a orders
tabela no banco de dados de exemplo :
A instrução a seguir usa a WEEK()
função para obter o número de pedidos por semana em 2003
:
SELECT
WEEK(orderDate) week_no,
COUNT(*)
FROM
orders
WHERE
YEAR(orderDate) = 2003
GROUP BY
WEEK(orderDate);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
Resumo
- Use a
WEEK()
função MySQL para obter o número da semana de uma data específica.