Я хочу генерировать запрос с некоторым текстом (am pm со временем) в mysql.
Мой стол вот так
id starttime endtime
1 9:00 10:00
2 14:00 16:00
Мое время в формате 24 часа. Я хочу запрос с результатом.
id starttime endtime
1 9:00am 10:00am
2 2:00pm 4:00pm
Как это сделать?
Вы можете использовать DATE_FORMAT().
SELECT id,
DATE_FORMAT(starttime, '%h:%i %p') AS starttime,
DATE_FORMAT(endtime, '%h:%i %p') AS endtime
FROM TableName
Вот демо.
Однако, если ваш тип данных столбца является строкой. Вам необходимо преобразовать его в DATETIME
или TIME
используя STR_TO_DATE
чтобы DATE_FORMAT()
правильно DATE_FORMAT()
.
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;
Вот демо.
Мы можем использовать TIME_FORMAT
как TIME_FORMAT
ниже
mysql> select TIME_FORMAT('14:00', '%r') ;
+----------------------------+
| TIME_FORMAT('14:00', '%r') |
+----------------------------+
| 02:00:00 PM |
+----------------------------+
или если его из таблицы tablename и столбцов являются временем начала и окончания,
select id,TIME_FORMAT(starttime, '%r'),TIME_FORMAT(endtime, '%r') from tablename;
или мы можем использовать DATE_FORMAT
как DATE_FORMAT
ниже (примечание: если время starttime
и endtime
time
являются типом данных time
)
select id,DATE_FORMAT(starttime, '%h:%i %p'),DATE_FORMAT(endtime, '%h:%i %p') from tablename;
Я надеюсь, что это сделает вашу работу,
2:00pm
и4:00pm