2017-02-08 20 views
0

mySQL 5.6を使用しています。24時間表示のTIME_FORMATを取得できません

私はこのように私のデータベースに時間を記憶しています

:私はベースのデータを選択したい場合は

15:00:00 

(だから、午後3時です。これは、データベースに格納されているものである。。)

私はこのようなことをします:

@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はデータベースに保存されているので、03:00:00ではなく、TIME_FORMATが3:00 pm~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') 

私の必要とするものはどれもありません。ここで

は、マニュアルはこう言われる、

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/ 

ので、ここにあるすべてが、私がやっていることはうまくいくはずだと言っています。

ここには何がありますか?

+1

あなたの質問には一貫性がありません。まず、24時間値として時間を保存していると言いますが、最後に、使用されている方法のどれもが24時間形式を保持していない理由を尋ねます。 – Martin

+0

[manual](https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_time-format)を読んだことがありますか? – Martin

+1

私は私の問題を明確にしました。そしてはい、マーティン、私はマニュアルを読んでいます。どこでも私が考えることができる検索された。しかし、私は自宅で一人で仕事をしています。時には私は正しい方向に私を向けるためにもう一組の目が必要です。 snarkyにならないでください。 –

答えて

1

あなたはSTR_TO_DATE()を使用することができます。

select str_to_date('03:00 pm','%h:%i %p') 
+0

はい!!!! str_to_date()はトリックを行います! –

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」パラメータを変更してください。

関連する問題