[PHP-users 24630] PostgreSQL から取得した日付データの strtotime() について

T.Masuda tmasuda @ msg.biglobe.ne.jp
2005年 2月 21日 (月) 15:54:18 JST


マスダです。

※ Subject 変えさせていただきました。


> 反論ではなく補足ですが,ハイフン区切りがエラーというよりマイクロ
> 秒の部分(mss)のエラーですね.

> それはハイフンだからではなく末尾の .mss が原因だと思います.
> "yyyy-mm-dd hh:mm:ss" 形式ならば strtotime() で解釈できます.

その通りでした。
すみません。


> ついでに,これは PHP とは違うレイヤの話ですが,
> RDBMS がデフォルトで返す日付形式に依存したコードはよろしくないと石毛は考えま
> すので,
> 要不要に関わらず to_char() などで形式を設定して取得すべきと思います.
> そうすれば,異なる RDBMS で同じ SQL を使いまわせるかもしれませんし.

私は、会社では PostgreSQL で開発していますが、
いつも持ち歩いている Windows ノート単体で開発ができるように、
自宅その他では DB を Access に置き換えて開発しています。

その際、to_char 自体が PostgreSQL(Oracleにもあったかな?) の関数だと思うので、
Access ではエラーとなってしまいます。
結局 ソースコード内の SQL を書き換えることなく RDBMS をすげ替えるには、 
PHP に日付を解釈させるしか方法はなく、
使用する RDBMS によって返される日付形式が異なるのだとすると、
PHP で吸収してやるより方法がないのかな。。と思うのですが。

PHP には、日付型、または、日付オブジェクトというものが存在しない
様ですので、データベースから取得したデータは「日付文字列」という
形でしか取得できない様です。(間違っていたらすみません)
これが問題をややこしくしているのかなと思えるのですが。。。



PHP-users メーリングリストの案内