php - MySql数据库排除A.M, P.M, from datetime, timestamp, time, PHP, SQL

标签 php mysql datetime time timestamp

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

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

最佳答案

解决方法是使用 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

关于php - MySql数据库排除A.M, P.M, from datetime, timestamp, time, PHP, SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31549767/

相关文章:

PHP SQL SELECT where like 搜索带有多个词的项目

php - 从 MySQL 中删除旧记录的问题

php - 使用空值/无值更新 INT/DECIMAL 字段

php - 如何在 Laravel 中将多选值插入数据库?

PHP DateTime createFromFormat不会自然消亡

php - Google 是唯一需要 "identifier_select"的 OpenID 提供商吗?

asp.net - mysql 事务在asp.net 中?

mysql - 使用 "HAVING"子句忽略 SQL 函数调用

PHP - 两个日期之间的奇怪秒数差异(90000 而不是 86400)

python - datetime:以微秒为单位的舍入/修剪位数