使用mySQL 5.6。
我将时间存储在我的数据库中:
15:00:00
(所以那是下午3:00。这是存储在数据库中的内容。)
当我想根据时间选择数据时,我会这样做:
@x = "03:00 pm"; (This is what is being passed in from my time widget.)
SELECT * FROM mytable
WHERE start = TIME_FORMAT(@x, '%H:%i:%s');
但是这会返回03:00:00,所以没有匹配 (请记住15:00:00在数据库中,所以我需要TIME_FORMAT将下午3:00更改为15:00:00,而不是03:00:00。)
我尝试了以下所有方法:
SELECT TIME_FORMAT('03:00 pm', '%H:%i:%s')
SELECT TIME_FORMAT('03:00 pm', '%h:%i:%s')
SELECT TIME_FORMAT('03:00 pm', '%T')
他们中没有人给我15:00:00我需要的。
以下是手册所说的内容:
This is used like the DATE_FORMAT() function, but the format string may
contain format specifiers only for hours, minutes, seconds, and microseconds.
Other specifiers produce a NULL value or 0.
以下是一些显示示例的网站以及显示哪些格式符号将与TIME_FORMAT函数一起使用的表格:
https://www.techonthenet.com/mysql/functions/time_format.php
http://www.java2s.com/Tutorial/MySQL/0280__Date-Time-Functions/TIMEFORMATtimeformat.htm
http://www.w3resource.com/mysql/date-and-time-functions/mysql-time_format-function.php
http://www.mysqltutorial.org/mysql-time/
所以,这里的一切都告诉我,我正在做的事情应该有用。
我没有到这里来的是什么?
答案 0 :(得分:1)
您可以使用STR_TO_DATE()
:
select str_to_date('03:00 pm','%h:%i %p')
答案 1 :(得分:0)
以下内容:
SELECT TIME_FORMAT('03:00 pm', '%H:%i:%s')
SELECT TIME_FORMAT('03:00 pm', '%H:%i:%S')
SELECT TIME_FORMAT('03:00 pm', '%T')
正确存储数据库就像你想要的那样 也许你应该尝试更改'date'参数。