MySQL STR_TO_DATE() Function
A função `STR_TO_DATE()` do MySQL é usada para converter uma string em uma data com base em um formato especificado. Ele é particularmente útil para analisar cadeias de datas em objetos de data com os quais o MySQL pode trabalhar.
Uso
A função `STR_TO_DATE()` é normalmente usada quando você precisa transformar uma string em um formato de data para executar operações relacionadas a datas. Essa função requer a cadeia de caracteres a ser convertida e o formato no qual a data é especificada.
STR_TO_DATE(string, format);
Nessa sintaxe, `string` é a cadeia de datas que você deseja converter e `format` é o formato que corresponde à estrutura da cadeia.
Especificadores de formato comuns
Aqui estão alguns especificadores de formato comuns que você pode usar com `STR_TO_DATE()`:
%d
: Dia do mês (01 a 31)%m
: Mês (01 a 12)%Y
: Ano (quatro dígitos)%H
: Hora (00 a 23)%i
: Minutos (00 a 59)%s
: Segundos (00 a 59)%W
: Nome do dia da semana (por exemplo, domingo)%b
: Nome abreviado do mês (por exemplo, janeiro)
Exemplos
1. Conversão básica de string para data
SELECT STR_TO_DATE('10-12-2023', '%d-%m-%Y');
Este exemplo converte a string "10-12-2023" em uma data usando o formato "%d-%m-%Y", que se traduz em "10 de dezembro de 2023".
2. Conversão com o tempo
SELECT STR_TO_DATE('2023/12/10 14:30:00', '%Y/%m/%d %H:%i:%s');
Aqui, a função converte '2023/12/10 14:30:00' em um objeto de data e hora, interpretando o formato como 'Ano/Mês/Dia Hora:Minuto:Segundo'.
3. Analisando diferentes formatos de data
SELECT STR_TO_DATE('Saturday, Dec 10 2023', '%W, %b %d %Y');
Este exemplo demonstra a conversão de uma cadeia de caracteres com um formato de data diferente 'Saturday, Dec 10 2023' usando '%W, %b %d %Y' para interpretar nomes de dias e nomes de meses abreviados.
4. Exemplo de formato incompatível
SELECT STR_TO_DATE('2023-10-12', '%d-%m-%Y');
Esse exemplo retorna `NULL` porque o formato não corresponde à cadeia de caracteres de entrada, destacando a importância de você fazer a correspondência exata entre a cadeia de caracteres de formato e a estrutura da cadeia de caracteres de entrada.
Dicas e práticas recomendadas
- Garantir a precisão do formato. A string de formato deve corresponder exatamente à estrutura da string de data para que a conversão seja bem-sucedida.
- Trate os NULLs de forma elegante. Se o formato não corresponder, a função retornará `NULL`; use `COALESCE()` para gerenciar possíveis nulos.
- Aproveite as funções de data do MySQL. Após a conversão, utilize as funções de data do MySQL para manipular e consultar dados de data com eficiência.
- Teste com dados de amostra. Valide a função com dados de amostra para garantir que a string de formato corresponda corretamente à estrutura da string de entrada.
- Considere as configurações de localidade. Lembre-se de que os especificadores de formato de data podem variar de acordo com a localidade, o que pode afetar a análise.
Armadilhas comuns e mensagens de erro
- Incompatibilidade de formato: Uma armadilha comum é a incompatibilidade entre a string de data e a string de formato, resultando em um valor `NULL`.
- Diferenças de localidade: Certifique-se de que os especificadores de formato correspondam às configurações de localidade se a cadeia de datas usar nomes de dias ou meses localizados.