Quiero generar una consulta con algo de texto (am pm con tiempo basado) en mysql.
Mi mesa como esta
id starttime endtime
1 9:00 10:00
2 14:00 16:00
Mi tiempo está en formato de 24 horas. Quiero consulta con resultado.
id starttime endtime
1 9:00am 10:00am
2 2:00pm 4:00pm
¿Cómo hacerlo?
2 respuestas
Puede utilizar DATE_FORMAT ().
SELECT id,
DATE_FORMAT(starttime, '%h:%i %p') AS starttime,
DATE_FORMAT(endtime, '%h:%i %p') AS endtime
FROM TableName
Aquí tienes una demostración.
Sin embargo, si el tipo de datos de su columna es string. Necesita convertirlo a DATETIME
o TIME
usando STR_TO_DATE
para que DATE_FORMAT()
funcione correctamente.
SELECT id,
DATE_FORMAT(STR_TO_DATE(starttime, '%k:%i'), '%h:%i %p') AS starttime,
DATE_FORMAT(STR_TO_DATE(endtime, '%k:%i'), '%h:%i %p') AS endtime
FROM TableName;
Aquí tienes una demostración.
Podemos usar TIME_FORMAT
como se muestra a continuación
mysql> select TIME_FORMAT('14:00', '%r') ;
+----------------------------+
| TIME_FORMAT('14:00', '%r') |
+----------------------------+
| 02:00:00 PM |
+----------------------------+
O si es de una tabla nombre de tabla y las columnas son hora de inicio y hora de finalización , entonces,
select id,TIME_FORMAT(starttime, '%r'),TIME_FORMAT(endtime, '%r') from tablename;
O podemos usar DATE_FORMAT
como se muestra a continuación, (nota: si starttime
y endtime
son del tipo de datos time
)
select id,DATE_FORMAT(starttime, '%h:%i %p'),DATE_FORMAT(endtime, '%h:%i %p') from tablename;
Espero que esto haga tu trabajo
Nuevas preguntas
mysql
MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) gratuito y de código abierto que utiliza lenguaje de consulta estructurado (SQL). NO UTILICE esta etiqueta para otras bases de datos como SQL Server, SQLite, etc. Estas son bases de datos diferentes que utilizan sus propios dialectos de SQL para administrar los datos.