Извините, потому что я дублирую этот вопрос, но с другим форматом. Мне любопытно, как преобразовать строку («RD / OT 07:30») во времени. Я просто знаю, как конвертировать («07:30 AM») во времени. Этот код ниже дает мне чистые данные.
$id = strtoupper($_POST['id']); $query = mysql_query("SELECT STR_TO_DATE('RD/OT 07:30','%x %h:%i') as ScheduleIn FROM tbl_uploadedschedule") or die(mysql_error()); $res = mysql_fetch_assoc($query); $r = $res['ScheduleIn']; return($r);
Вы можете использовать STR_TO_DATE(str,format)
для преобразования формата времени:
SELECT STR_TO_DATE(`field_name`, '%h:%i %p') FROM `table_name` # this will convert '7:30 AM' to '07:30:00'
Если выводится весь формат DATETIME, вы можете использовать функцию TIME(expr)
чтобы получить только часть TIME.
Демо ( не знаю, почему sqlfiddle игнорирует функцию TIME (), она работает на localhost ).
Спасибо за ответы, теперь я получаю STR_TO_DATE (), код:
STR_TO_DATE('loginTime', '%h:%i %p') as Cast
неправильно, потому что он читает «loginTime» как строку, которая является незаконным форматом времени. И правильный синтаксис:
STR_TO_DATE(loginTime, '%h:%i %p') as Cast
без единой котировки в имени столбца. Хоррей!