无法让TIME_FORMAT显示24小时制

时间:2017-02-08 18:14:04

标签: mysql

使用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/

所以,这里的一切都告诉我,我正在做的事情应该有用。

我没有到这里来的是什么?

2 个答案:

答案 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'参数。