web-dev-qa-db-ja.com

mysqlTIMEを24HRからAM / PM形式に変換する

WebサイトのmysqlテーブルのTIMEフィールドを表示したいのですが、21:00:00などではなく、午後8時を表示したいと思います。これを行うための関数/コード、または正しい方向へのポインターが必要です。最初の返信を正しい返信としてコードでマークします。

11
Ali

これをチェックしてください: http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

Date_format()が必要だと思います。

例:DATE_FORMAT($ date、 "%r")

12
Steve Klabnik

次の例を使用して、日付と時刻のデータをAM/PM形式で表示します。

SELECT DATE_FORMAT(`t`.`date_field`,'%h:%i %p') AS `date_field` FROM `table_name` AS `t`

OR

SELECT DATE_FORMAT(`t`.`date_field`,'%r') AS `date_field` FROM `table_name` AS `t`

どちらも正常に動作しています。

13
JDGuide

MYSQLのUNIX_TIMESTAMP()関数を使用して、列をUNIXタイムスタンプとして選択することもできます。次に、PHPでフォーマットします。 IMOこれはより柔軟です...

_select a, b, c, UNIX_TIMESTAMP(instime) as unixtime;
_

In PHP date()関数を使用して、好きなようにフォーマットします。

_<?php echo date('Y/m/d', $row->unixtime); ?>
_

SQLでフォーマットするのではなく、この方法が好きな理由はb/cです。私にとって、日付のフォーマットは表示の決定であり、(私の意見では)SQLで日付をフォーマットするのは間違っていると感じます...なぜ表示ロジックをSQL?

さて、PHPでデータを処理しておらず、アドホッククエリを実行している場合は、DATE_FORMAT()が最適です。ただし、データを表示する場合はウェブ上では、UNIX_TIMESTAMP()を使用して、PHPでフォーマットを行います...

つまり...ページでの日付と時刻の表示方法を変更したいとします...表示を微調整するためにSQLを変更する必要があるのは「オフ」だと感じませんか?

私の2セント

3
phatduckk

私は同じことをしようとしていて、このページがグーグル検索から返されました。 21:00:00の時間にソリューションを作成しました。

  • 午後9時を返したDATE_FORMAT(<field>,'%l.%i%p')を使用

  • LOWER()関数をその周りに配置して午後9時を返します

したがって、完全なコードは次のとおりです。 DATE_FORMAT(<field>,'%l.%i%p')

私のためにうまくいった...

1
Ian Lodge

DATE_FORMAT() を使用します

DATE_FORMAT(<フィールド>、 '%h:%i:%s%p')

または

DATE_FORMAT(<フィールド>、 '%r')

1
Martin York