Получите время из типа varchar (100) с форматом (HH: MM AM / PM)

Извините, потому что я дублирую этот вопрос, но с другим форматом. Мне любопытно, как преобразовать строку («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 

    без единой котировки в имени столбца. Хоррей!