Este artigo contém exemplos do
DATE_FORMAT()
função no MySQL. O
DATE_FORMAT()
A função permite retornar uma data em um formato especificado. Por exemplo, você pode usá-lo para retornar 2020-06-18 como quinta-feira, junho de 2020 , ou qualquer outro formato que você precisar. Sintaxe
A sintaxe fica assim:
DATE_FORMAT(date,format)
Onde
date
é a data que você deseja formatar e format
especifica como deve ser formatado. Para obter uma lista de especificadores de formato válidos, consulte a tabela na parte inferior deste artigo. O valor do formato deve começar com um sinal de porcentagem (
%
). Exemplo
Aqui está um exemplo para demonstrar.
SELECT DATE_FORMAT('2020-06-18', '%W, %M %Y') AS 'Result';
Resultado:
+---------------------+ | Result | +---------------------+ | Thursday, June 2020 | +---------------------+
Nomes de dias e meses curtos/abreviados
Aqui está um exemplo que formata o resultado em nomes curtos de dia e mês.
SELECT DATE_FORMAT('2020-06-18', '%a, %b %Y') AS 'Result';
Resultado:
+---------------+ | Result | +---------------+ | Thu, Jun 2020 | +---------------+
Um exemplo de banco de dados
Aqui está um exemplo em que formatamos o valor retornado de uma coluna de banco de dados armazenada como um valor de data e hora.
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%W, %M %Y') AS 'Date' FROM payment WHERE payment_id = 1;
Resultado:
+---------------------+---------------------+ | Date/Time | Date | +---------------------+---------------------+ | 2005-05-25 11:30:37 | Wednesday, May 2005 | +---------------------+---------------------+
Formatando a hora
Você também pode usar
DATE_FORMAT()
para formatar o componente de hora de um datetime valor. Exemplo:USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i:%s') AS 'Time' FROM payment WHERE payment_id = 1;
Resultado:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30:37 | +---------------------+----------+
Aqui está outro exemplo em que adiciono AM/PM designador:
USE sakila; SELECT payment_date AS 'Date/Time', DATE_FORMAT(payment_date, '%h:%i %p') AS 'Time' FROM payment WHERE payment_id = 1;
Resultado:
+---------------------+----------+ | Date/Time | Time | +---------------------+----------+ | 2005-05-25 11:30:37 | 11:30 AM | +---------------------+----------+
Especificadores disponíveis
Os especificadores a seguir podem ser usados para especificar o formato de retorno. O valor do formato deve começar com um sinal de porcentagem (
%
). Especificador | Descrição |
---|---|
%a | Nome abreviado do dia da semana (Sun ..Sat ) |
%b | Nome do mês abreviado (Jan ..Dec ) |
%c | Mês, numérico (0 ..12 ) |
%D | Dia do mês com sufixo em inglês (0th , 1st , 2nd , 3rd , …) |
%d | Dia do mês, numérico (00 ..31 ) |
%e | Dia do mês, numérico (0 ..31 ) |
%f | Microssegundos (000000 ..999999 ) |
%H | Hora (00 ..23 ) |
%h | Hora (01 ..12 ) |
%I | Hora (01 ..12 ) |
%i | Minutos, numérico (00 ..59 ) |
%j | Dia do ano (001 ..366 ) |
%k | Hora (0 ..23 ) |
%l | Hora (1 ..12 ) |
%M | Nome do mês (January ..December ) |
%m | Mês, numérico (00 ..12 ) |
%p | AM ou PM |
%r | Hora, 12 horas (hh:mm:ss seguido por AM ou PM ) |
%S | Segundos (00 ..59 ) |
%s | Segundos (00 ..59 ) |
%T | Horário, 24 horas (hh:mm:ss ) |
%U | Semana (00 ..53 ), onde domingo é o primeiro dia da semana; WEEK() modo 0 |
%u | Semana (00 ..53 ), onde segunda-feira é o primeiro dia da semana; WEEK() modo 1 |
%V | Semana (01 ..53 ), onde domingo é o primeiro dia da semana; WEEK() modo 2; usado com %X |
%v | Semana (01 ..53 ), onde segunda-feira é o primeiro dia da semana; WEEK() modo 3; usado com %x |
%W | Nome do dia da semana (Sunday ..Saturday ) |
%w | Dia da semana (0 =Domingo..6 =Sábado) |
%X | Ano da semana em que domingo é o primeiro dia da semana, numérico, quatro dígitos; usado com %V |
%x | Ano para a semana, onde segunda-feira é o primeiro dia da semana, numérico, quatro dígitos; usado com %v |
%Y | Ano, numérico, quatro dígitos |
%y | Ano, numérico (dois dígitos) |
%% | Um literal % personagem |
% | x , para qualquer “x ” não listado acima |