• ベストアンサー

PostgreSQL:timestamp with time zone型のデータから日付と時間と取り出したい。

PHP 4.4.2 + PostgreSQL 7.4.8 です。 今、フィールド「DATE」、データ型「timestamp with time zone」に  2006-12-14 09:00:28.853324+09  というデータが入っています。 このデータをウェブ上で ○月○日○時○分 という形式で表示させたいのですが、 to_char以外の方法で実現させるにはどのようにすればよいでしょうか? よろしくお願いします。

  • PHP
  • 回答数3
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#151014
noname#151014
回答No.1

頻繁に使用するのであれば、関数作るのが手っ取り早いです。 function date4($sel_day) { $y = substr($sel_day,0,4); $m = substr($sel_day,5,2); $d = substr($sel_day,8,2); $sel_day = $y."年".$m."月".$d."日"; return $select_day; } 安直ですがこんな感じ。

tessyu
質問者

お礼

どうもありがとうございます。 関数にする事にしました。

その他の回答 (2)

回答No.3

ANo2のものです。 すみません。先ほどのプログラムは無視して下さい。 マイクロ秒が含まれている日付時刻文字列は、PHP5以上じゃないと対応していないとPHPマニュアルに書いていました、 失礼しました。

回答No.2

strtotime関数を使えば、簡単にできます。 $t = "2006-12-14 09:00:28.853324+09"; echo date("Y-m-d H:i:s", strtotime($t));

tessyu
質問者

お礼

PHP5以上であればこんなやり方もあるんですね。 ありがとうございます。

関連するQ&A

  • timestamp with time zone型のデータから日付と時間と取り出したい。

    PHP 4.4.2 + PostgreSQL 7.4.8 です。 今、フィールド「DATE」、データ型「timestamp with time zone」に  2006-12-14 09:00:28.853324+09  というデータが入っています。 このデータをウェブ上で ○月○日○時○分 という形式で表示させたいのですが、どのようにすればよいでしょうか? よろしくお願いします。

  • postgresのtimestampの『witho

    postgresのtimestampの『without time zone』と『with time zone』の違いを教えてください。 timestamp [ (precision) ] without time zone timestamp [ (precision) ] with time zone PostgreSQL 9.6.1文書を読んでみましたがイマイチ理解できていません。 https://www.postgresql.jp/document/9.6/html/datatype-datetime.html#datatype-datetime-input ざっくり何が違って、どういう用途で使い分けるのか教えてください。

  • PostgreSQLのtimestamp型で時間(分)を抽出したい

    PostgreSQLのあるテーブルで「開始時刻」と「終了時刻」というフィールドがあり、timestamp with timezone(例:2008-07-31 07:00:00+09)でデータを持っています。 例えば、日付に関係なく13:00から15:00までのデータを抽出したい場合、SQLのWHERE句にはどのように記述すればよろしいのでしょうか?

  • timestamp型の表示

    PHPとPostgreSQLでサイトを作っています。 そこで、pgSQLの中にあるtimestamp型のフィールドから PHPでデータを取り出してます。 そのまま取り出すと、「2002-09-18 23:29:00+09」こういう形になります。 このデータを「02/09/18(Wed) 23:29」みたいに表示させたいのですが。。。 PostgreSQL 7.0.2 PHP4 初歩的な質問かもしれませんが宜しくお願いします。

    • ベストアンサー
    • PHP
  • timestamp が空のデータを除いて、データを選択したい

    テスト用に簡単なテーブルを作成してみました。 テーブル名:timetest フィールド: test_id : integer NOT NULL test_date : timestamp without time zone テストデータとして 1,2005-11-15 14:01:40.026 2,NULL 3,2005-11-14 11:11:11.001 このときに test_date がNULL以外のものだけを選択したいのですが、 slect * from timetest where test_date != null; では1件も選択されず、 select * from timetest where test_date != ''; では、 ERROR: invalid input syntax for type timestamp: "" というエラーになってしました。 どなたかご教授お願い致します。

  • PostgreSQLのテーブル構造を取得したい

    現在PostgreSQLとPHP5を利用してアプリケーションを開発しております。 PHPにて現在すでに存在するPostgreSQLのテーブルの定義情報を取得するにはどうすればよろしいでしょうか。テーブルの定義情報は下記のようにSQLのCREATE文で取得したいと思っております。 CREATE TABLE favorite ( code serial NOT NULL, reg_date timestamp without time zone NOT NULL DEFAULT now(), update_date timestamp without time zone, title text, url text, u_id character varying(20) NOT NULL, enabled_flag smallint NOT NULL DEFAULT 1, CONSTRAINT web_favorite_pkey PRIMARY KEY (fv_code) ) 何卒よろしくお願いいたします。

  • PostgreSQLのtimestamp型とVCのRFX_Dateについて

    PostgreSQLのtimestamp型とVCのRFX_Dateについて ■開発環境 クライアント  WindowsXP  VC++6.0 サーバ  RedhatLinux9.0  PostgreSQL7.3.2 ■問題点 CRecordsetクラスを使用しDBに接続を行っています。(ODBCです) DoFieldExchange関数にて下記のようにtimestamp型のデータを取得しようとしました CTime timeTest; RFX_Date(pFX, _T("[time]"), timeTest); 書き込みは可能ですが読み込みが出来ません。 但し、date型は問題なく動作します。 (varchar,int,smallintなども問題ありません) 解決方法をご教授頂けますでしょうか? 以上、よろしくお願いします。

  • 時間の差分

    初めまして。 早速質問をさせていただきたいと思います。 postgresとPHPを使って開発中です。 postgresでは、timestamp without time zone型にデータを保存しております。 それを取得して、現在の時間との差分が1分以内だったら・・・という処理を したいのですが、mktime()を使ったり、strtotime()を使ったりして ためしたのですが、うまくいきません。 //$date → postgresから取得したtimestamp $diff = time() - strtotime($date); if ($diff < 60) {   ** 処理 ** } ご教授よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • to_timestampを使ったアップデート

    オラクル初心者です。 「to_timestamp」を使用したデータベースへの書き込みのSQL文が分かりません。 ツールは「つみきWEB」を使用しています。 フィールドの形式は to_timestamp(yyyy/mm/dd hh24:mi:ss.ff3)です。 行ったコマンドは以下に示します。 update (テーブル名) set (書き込みを行うフィールド) = to_timestamp('11/11 11:11:11' 、'yyyy/mm/dd hh24:mi:ss.ff3') WHERE (条件)

  • timestampの日付の表示変換

    Mysqlのデータベースの中にある フィールド名: date_time 種別: timestamp を下記のPHPコードですると、 echo $row['date_time']; 下記のように表示されます。 2008-02-04 00:00:00 これを、Monday, February 4, 2008 と表示させたいのですが、 どのように日付表示を変換すればよいのか分かりません。 どなたか教えてもらえますか? 宜しく御願いします。

    • 締切済み
    • PHP

専門家に質問してみよう