从varchar(100)类型获取时间(HH:MM AM / PM)格式

时间:2013-11-12 12:29:27

标签: php mysql time fetch typeconverter

如何将字符串(“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);

2 个答案:

答案 0 :(得分:1)

您可以使用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部分。

Demo 不知道为什么sqlfiddle忽略了TIME()函数;它适用于localhost )。

答案 1 :(得分:0)

感谢您的回答,现在我收到了STR_TO_DATE(),代码:

STR_TO_DATE('loginTime', '%h:%i %p')  as Cast 

是错误的,因为它将'loginTime'读作字符串,这是一种非法的时间格式。正确的语法是:

 STR_TO_DATE(loginTime, '%h:%i %p')  as Cast 

列名中没有单引号。霍瑞!