MySQL é derivado de ‘My’ – filha do cofundador e SQL- Structured Query Language. É um tipo de sistema de gerenciamento de banco de dados relacional de código aberto. Esse sistema de banco de dados relacional ajuda a organizar os dados em tabelas relacionáveis, permitindo assim relações estruturais de diferentes conjuntos de dados.
A data do MySQL é um dos tipos de dados temporais que podem gerenciar valores de dados juntamente com outros tipos de dados, como tipos de dados numéricos, tipos de dados String, tipos de dados booleanos, data e hora e tipos de dados espaciais.
A função DATE_FORMAT() é usada no MySQL para formatar a data usando o valor de formato especificado. Por exemplo, se uma data for fornecida, a função irá formatá-la de acordo com os parâmetros especificados.
Sintaxe do formato de data do MySQL
DATE_FORMAT(data, formato)
A função de sintaxe acima aceita dois parâmetros conforme mostrado abaixo:
- data – Especifica a data a ser formatada
- formato – Define o formato a ser usado para formatar a data
Abaixo está uma lista de formatos com os quais você deve se familiarizar ao lidar com a função de data.
- %a – este formato exibe o nome do dia da semana. é limitado de domingo a sábado.
- %b – este símbolo de formato mostra o nome do mês. é restrito de janeiro a dezembro.
- %c – este símbolo de formato indica o nome numérico do mês. é limitado de 0 a 12
- %D – este símbolo de formato mostra o valor numérico do dia do mês seguido por um sufixo como 1º ou 2º.
- %e – este símbolo de formato mostra o valor numérico do dia do mês. é limitado de 0 a 31
- %f – este símbolo de formato mostra microssegundos. é limitado de 000000 a 999999.
- %H – este símbolo de formato indica a hora. É limitado de 00 a 23.
- %i – este símbolo de formato mostra os minutos. é limitado de 00 a 59.
- %j – este símbolo de formato mostra o dia do ano. é limitado de 001 a 366.
- %M – este símbolo de formato indica o nome do mês. é limitado de janeiro a dezembro
- %p – este símbolo de formato mostra PM ou AM
- %S – este símbolo de formato mostra segundos. é limitado de 00 a 59
- %U – este símbolo de formato mostra os dias da semana em que o domingo é o primeiro dia. É limitado de 00 a 53.
- %W – este símbolo de formato mostra os dias da semana de domingo a sábado
- %Y – este símbolo de formato mostra o valor numérico do ano como um número de 4 dígitos
Os formatos listados acima retornam uma data formatada.
Exemplo 1:
Para extrair ou mostrar o ano a partir da data atual, devemos executar a seguinte linha de comando:
SELECT DATE_FORMAT("2021-09-25", "%Y");
Saída:
Exemplo 2:
Extraia o nome do mês de uma determinada data, conforme mostrado abaixo:
25-09-2021
SELECT DATE_FORMAT("2021-09-25", "%M");
Saída:
Exemplo 3:
Extraia horas e minutos da data fornecida abaixo:
25-09-2021
SELECT DATE_FORMAT("2021-09-25 10:20:23", "%H %i");
Saída:
Exemplo 4:
Extraia o dia do mês numericamente a partir da data especificada abaixo:
25-09-2021
SELECT DATE_FORMAT("2021-09-25", "%D");
Saída:
Exemplo 5:
Extraia o mês, dia e ano, respectivamente, a partir da data fornecida neste documento:
25-09-2021
SELECT DATE_FORMAT("2021-09-25", "%M %d %Y");
Saída:
A data do MySQL usa o formato; aaaa-mm-dd para armazenar um valor de dados, e esse formato geralmente é corrigido sem permissão para alterá-lo. Para os requisitos de armazenamento do MySQL, para armazenar um único valor de data, ele usaria cerca de 3 bytes e possui um valor de data variando de 1000-01-01 a 9999-12-31. Portanto, um usuário que precise armazenar um intervalo de datas fora desses parâmetros só será possível através de inteiros. No entanto, esse processo é bastante desgastante e exigiria que você criasse três colunas, uma para o ano, outra para o mês e a última para o dia.
Isso geralmente não é recomendado para tentar na maioria das ocasiões se você quiser alterar o formato da data. Desativar o 'modo estrito' ajudará a converter qualquer data inválida para o 'valor de data zero'. Uma data inválida nesta instância não seguiria o formato de data padrão do MySQL, por exemplo, 24/01/2020. Isso também criaria a necessidade de desenvolver 'funções armazenadas', que reproduziriam as funções de data recém-criadas do MySQL.
Valores de data do MySQL com anos de 2 dígitos
O MySQL só aceitará valores de ano de dois dígitos nas seguintes condições:
- Os valores do ano entre 00-69 são convertidos para 2000-2069
- Os valores do ano entre 70-79 são convertidos para 1970-1999
No entanto, é aconselhável evitar o uso de valores de data com dois dígitos, pois é ambíguo.
Aqui está um exemplo. Uma tabela é criada com o nome "pessoas" e tem colunas "tipos de dados":
CREATE TABLE IF NOT EXISTS people ( JOB_ID integer NOT NULL UNIQUE PRIMARY KEY, JOB_TITLE varchar(35) NOT NULL DEFAULT ' ', MIN_SALARY decimal(6,0) DEFAULT 8000, MAX_SALARY decimal(6,0) DEFAULT NULL)ENGINE =InnoDB;
A seguinte função irá ‘inserir uma linha’ na tabela ‘pessoas’:
INSERT INTO people(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
VALUES('5', 'Foss', '2000', '2000');
Agora 'Consulte os dados' da tabela 'pessoas'
SELECIONAR * DE pessoas;
Após executar os comandos acima, agora será possível usar a opção de formato de ano de 2 dígitos para inserir dados na tabela ‘pessoas’:
INSERT INTO people(JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY,BIRTH)
VALUES('6', 'FOSSLINUX', '200', '2000', '01-09-01');
'01' foi usado na primeira linha como o ano, situando-se entre o (intervalo 00-69). O MySQL irá então convertê-lo para 2001, enquanto na segunda linha, o uso de '84' cai no intervalo (70-99), e o MySQL o converte para 1984.
Funções de data do MySQL
O MySQL geralmente fornece e usa várias funções de data, o que ajuda os usuários a manipular seus dados com mais eficiência e rapidez.
Por exemplo, usar a função ‘NOW( )’ ajuda a buscar a data e hora atuais:
SELECIONE AGORA( );
Para obter apenas a parte da data de um 'DATETIME', use apenas a função 'DATE( )':
SELECIONAR DATA(AGORA( ));
Para obter a data atual do sistema, use CURDATE ( ):
SELECT CURDATE();
A função ‘DATE_FORMAT’ pode ser usada para formatar o valor da data para este formato; mm/dd/aaaa. Ele usa o padrão de formato de data de %m/%d/%Y
SELECT DATE_FORMAT('2021-09-25 22:23:00', '%W %D %M %Y');
Se você deseja calcular o número de dias entre dois valores de data, use a função ‘DATEDIFF’:
mysql> SELECT DATEDIFF('2020-09-25', '2021-09-25') dias;
Usar a função ‘DATE_ADD’ ajuda a adicionar vários anos, meses, semanas ou dias:
SELECT DATE_ADD('2021-09-25', INTERVAL 31 DAY);
A função ‘DATE_SUB’ também pode ser usada para subtrair um intervalo de data:
SELECT DATE_SUB("2021-09-25", INTERVAL 10 DAY);
Usar a função correspondente em termos de data, mês, trimestre e ano ajudará você a obter o dia, mês, etc., para um valor de data, conforme mostrado abaixo:
SELECT DAY('2000-12-31') dia,
MONTH('2000-12-31') mês
QUARTER('2000-12-31') trimestre,
YEAR('2000-12-31') ano
Dia ǀ mês ǀ trimestre ǀ ano ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀ
Informações semanais de funções relacionadas podem ser acessadas através de:
SELECT
WEEKDAY('2000-12-31') dia da semana,
WEEK('2000-12-31') semana,
WEEKOFTHYEAR('2000-12-31') semana do ano;
dia da semana ǀ semana ǀ semana do ano ǀ
6 ǀ 53 ǀ 52 ǀ
A função de semana sempre retorna um número de semana com um índice baseado em zero. Você precisará passar um segundo argumento ou passar um '0' para evitar que isso aconteça. Passar '1' retornará o número da semana '1-indexado'.
WEEKDAY('2000-12-31') dia da semana,
WEEK( '2000-12-31', 1) semana,
WEEKOFTHYEAR('2000-12-31') semana do ano;
dia da semana ǀ semana ǀ semana do ano ǀ
6 ǀ 52 ǀ 52 ǀConclusão
Este é um tutorial de pequeno artigo que cobre o assunto formato de data do MySQL. Esperamos que todos os aspectos com os quais você queria se familiarizar com os formatos de data do MySQL tenham sido abordados. Lembre-se de dar um joinha na seção de comentários se achar o artigo útil.