Convertendo strings de data no MySQL utilizando STR_TO_DATE

Convertendo strings de data no MySQL utilizando STR_TO_DATE

Neste artigo vamos ver como trabalhar com a função STR_TO_DATE do MySQL para converter string em datas no formato aaaa-mm-dd

A string que vamos usar para conversão será esta:

 

"1965 Mar 18 0834"

 

Para converter esta string numa data no formato aaaa-mm-dd, a função STR_TO_DATE() precisa receber dois parâmetros. O primeiro parâmetro é esta string contendo uma informação que representa uma data, o segundo parâmetro é o formato como os componentes da data estão organizados na string informada. Nossa consulta ficará da seguinte forma:

 

SELECT STR_TO_DATE("1965 Mar 18 0834", "%Y %b %d %H%i") as data

 

E o resultado gerado foi:


1965-03-18 08:34:00

 

Vamos entender o segundo parâmetro. Nele foi informado o seguinte:

 

%Y %b %d %H%i

 

Este é o formato da data em nosso campo string. Seu significado é:

 

%Y - Ano

%b - Mês abreviado

%d - Dia

%H - Hora

%i - Minutos

 

Se a nossa string de data tivesse um formato diferente, seria necessário ajustar o segundo parâmetro. Vamos ver um segundo exemplo:

 

"1965 March 18 0834"

 

Este exemplo tem uma pequena diferença em relação ao anterior\\'. O mês não está abreviado.

Para converter, nossa consulta ficaria da seguinte forma:

 

SELECT STR_TO_DATE("1965 March 18 0834", "%Y %M %d %H%i") as data

 

Qual a diferença em relação a conversão anterior? No primeiro exemplo o mês era abreviado, então utilizamos na máscara do formato o parâmetro %b. Como o mês não está mais abreviado, ele foi substituído por %M

Para um melhor aproveitamento, precisamos conhecer quais os formatos que podem ser combinados para corresponder à nossa string de data. As opções disponíveis são os seguintes:

 

%Y - Ano com quatro dígitos (ex: 2024)

%y - Ano com dois dígitos (ex: 24)

%M - Nome completo do mês (ex: Janeiro)

%b - Nome abreviado do mês (ex: Jan)

%m - Mês como número (01 a 12)

%d - Dia do mês como número (01 a 31)

%H - Hora em formato 24 horas (00 a 23)

%h - Hora em formato 12 horas (01 a 12)

%i - Minutos (00 a 59)

%s - Segundos (00 a 59)

%p - AM ou PM

%W - Nome completo do dia da semana (ex: Segunda-feira)

%a - Nome abreviado do dia da semana (ex: Seg)

%u - Número da semana do ano (01 a 53)

 

Vamos ver outros exemplos de conversão de string de datas, fazendo alterações no formato da data original.

 

SELECT STR_TO_DATE("18 mar 1965 0834", "%d %b %Y %H%i") as data

 

SELECT STR_TO_DATE("18, 03, 1965", "%d, %m, %Y") as data

 

SELECT STR_TO_DATE("1965, 03, 18", "%Y, %m, %d") as data

 

SELECT STR_TO_DATE("1965 03 18 0834", "%Y %m %d %H%i") as data

 

 

Outros conteudos que podem ser de seu interesse

Como listar o tamanho das tabelas no SQL Server e no MySQL
25/09/2016SQL

Como listar o tamanho das tabelas no SQL Server e no MySQL

Veja como achar facilmente as tabelas que gastam mais espaço em seu banco de dados SQL Server ou MySQL!

Saiba mais...
Convertendo linhas em colunas no SQL Server usando PIVOT
07/02/2017SQL

Convertendo linhas em colunas no SQL Server usando PIVOT

Aprenda a transformar linhas em colunas no SQL Server

Saiba mais...
SQL vs Mongo - consultas com agrupamento
15/12/2019SQL

SQL vs Mongo - consultas com agrupamento

Veja exemplos de consultas com agrupamento no SQL e seus equivalentes no Mongo

Saiba mais...

Conteúdo sobre banco de dados sem complicação!


Warning: Cannot modify header information - headers already sent by (output started at /home/storage/f/7d/a9/dbins/public_html/blog/post.php:101) in /home/storage/f/7d/a9/dbins/public_html/blog/ga4_track.php on line 11