MySql数据库从日期时间,时间戳,时间,PHP,SQL中排除A.M,P.M

时间:2015-07-21 21:17:42

标签: php mysql datetime time timestamp

我的数据库中有三种数据类型。日期时间,时间戳和时间。我得到时间使用日期函数并尝试将其插入到所有三列的数据库中,但所有三列都拒绝了日期函数的A.M,P.M部分。我不明白为什么。我还需要插入日期函数的A.M,P.M部分,因此我可以按时间更有效地对数据库中的数据进行排序。是否有另一列可以存储日期的A.M,P.M部分,或者是否有解决方法?谢谢。

$time = date('h:i:s A');
//insert $time into all three columns into the database

2 个答案:

答案 0 :(得分:4)

解决方法是将hours值用作24小时制。要表示 '3:45:56 PM' ,请在数据库列中插入字符串值 '15:45:56'

否则,您可以使用 STR_TO_DATE 功能将字符串转换为有效的TIME值。

 INSERT INTO mytable (mycol) VALUES (STR_TO_DATE('3:45:56 PM','%h:%i:%s %p'))

从数据库列中检索TIME值,格式为带有AM / PM的12小时时钟。

SELECT DATE_FORMAT(mytimecol,'%h:%i:%s %p') AS mytimestr FROM ... 

参考文献:

STR_TO_DATE https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

DATE_FORMAT https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

答案 1 :(得分:0)

将列数据类型更改为Varchar(20) 并插入$ time = date(' h:i:s A');进入数据库。

从DB获取:

从数据库中获取此列时,可以使用

日期(' h:i:s A',strtotime($ fetched_datetime_from_db))。

享受!!