2016-05-03 5 views
0

、私は時間の形式があります:私はMySQLの時間(に変換しますか1000年どのように時間にint型の数値を変換する - たとえばSQL

を)午前10時00分00秒

それはまた、より複雑になることがありますいくつかの数字は3桁の長さであるため、例: 900 into MySQL Time()09:00:00

これ以上の説明が必要な場合はお知らせください。

答えて

0

使用CONVERT() - (http://dev.mysql.com/doc/refman/5.7/en/charset-convert.html

あなたは、それは時間ではなく数分であること)(CONVERTを表示するためにゼロでパッドにそれを持っています。あなたの例に固有

> SELECT CONVERT(CONCAT('1000','00'), TIME) AS time1; 
time1 
10:00:00 

または

> SELECT CONVERT(CONCAT(`fieldname`,'00'), TIME) AS time1 FROM `tablename`; 
time1 
10:00:00 
+0

グレートはあなたに感謝!今すぐデータ型のTime()で正しい行に値を挿入するにはどうすればよいですか?申し訳ありませんが私は私の質問で明確にしていない。 –

2

あなただけstr_to_date()

大手0 :)

SELECT STR_TO_DATE(LPAD(CAST(my_col AS CHAR(25)), 4, '0'), '%H') -- or %k 

またはあなただけのキャストをドロップすることができますを維持するためのLPADとの文字列とパッドそれそうCHARににあなたをキャストを使用したいですmysqlのため、あなた

SELECT STR_TO_DATE(LPAD(my_col, 4, '0'), '%k') 

FIDDLE

+0

@Strawberryうん、すでにそのための編集を書いていた:) –

0
012のための変換を行います

説明:MySQLのドキュメントとしてtime data typeのは言う:

MySQLは(つまり、経過時間としてではなく、一日の時間として、ある)2右端の桁は秒を表すという仮定を使用してコロンずに省略値を解釈します。たとえば、11時12分(11時12分後)は1112と1112を意味すると考えるかもしれませんが、MySQLでは「00:11:12」(11分12秒)と解釈します。 。同様に、 '12'と12は'00:00:12 'と解釈されます。

したがって1000を10時間0分と解釈する場合は、数値に100を掛けて時間表現として解釈する必要があります。

関連する問題