期間と期間を「PTxxMxxS」の形式で格納するMySQLデータベースを使用しています。MySQLデータベースから期間/期間の形式を変換する
標準時形式に変換したいので、たとえばPT4M17Sを04:17に変換したいとします。
私はSTR_TO_DATEとTIME_FORMATの様々な組み合わせを成功させずに試しました。
私は検索しましたが、解決策が見つからない - 問題の一部は、このタイプの時刻書式が呼ばれているかわかりません。
ありがとうございました。 str_to_date()機能上のMySQLのドキュメントとして
mysqlの日付/時刻フィールドは実際の日付/時刻です。間隔/期間を保存していますが、これは日付/時刻にきれいにマッピングされません。例えば'PT999H'は有効な間隔ですが、それをmysqlの時刻フィールドに入れると、mysqlの時刻は約+/- 838時間になるので、破損します。任意の間隔はおそらく秒を表す生の整数のような他のものに変換されるべきです。それらは簡単にいくつかのコードで区間書式に戻すことができますが、破損した時間値を変換/使用することはできません。 –
有効な期間は、str_to_date()関数を使用して上記の形式をMySQLの時刻形式に変換することができます。何を試してみましたか? – Shadow
これはデータを取得する必要があるデータベースなので、そのコンテンツを制御することはできません。タイムフォーマットPTxxMxxSは対処しなければならないものです。 STR_TO_DATE(fieldvalue、 '%h:%i:%s)を使用してみました。TIME_FORMATと似ています。 – jhTuppeny