[PHP-users 16771]Re: 日付・時間の四則演算について(初歩的)

Sugimura Masayuki sugimura @ ksp.nis.nec.co.jp
2003年 7月 17日 (木) 11:34:35 JST


> 環境は、redhat7.3+php-4.1.2+postgresql-7.2.3です。
> pg_exec(pg_connect("","","test"),INSERT INTO(略)・・・(date("Y/m/d 
> H:i:s")),(略)
> という感じで、PostgreSQLでtimestamp型で宣言した列に時間を取得してデータを放
> り込んでいます。
> 
> このデータを後で、別のプログラムから取り出し、その時点での現在時刻と取り出し
> た時間との差を求めています。
> つまり、はじめに登録した時間から現在までの経過時間ですね。
> 
> 今は、やり方がよくわからないので、取り出したデータを左から幾つ目が年で、その
> 次2桁が月で、その次が日で・・・
> という風に分解して、引き算しています。
> これは結構面倒で、例えば、現在の月が1月で、データベース内の月が12月の場合桁
> を送ったり、
> もうごちゃごちゃです。

SQL文でもできますよ。

test=# select CURRENT_TIMESTAMP - '2003/01/01 00:00:00' AS interval;
           interval           
------------------------------
 197 days 11:21:00.1209050007
(1 row)

経過時間を秒で取り出す場合は、

test=# select EXTRACT(EPOCH FROM CURRENT_TIMESTAMP - '2003/01/01 00:00:00') AS "epoch from interval";
 epoch from interval 
---------------------
     17061663.080436
(1 row)

--
Sugimura Masayuki	sugimura @ ksp.nis.nec.co.jp



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