[PHP-users 3333] Re: timestampの日付と時刻の更新
Naofumi Kondoh
php-users@php.gr.jp
Tue, 06 Nov 2001 10:42:33 +0900
ソフト工房の近藤です。
HOTTA Michihide wrote:
....略.....
> こちらでは、以下のような感じで正常に動作しています。
> 読んでいる人が追試できるように書いてあげると、解決が早まると
> 思います。
さすが堀田さん。
コピー & ペースト で実行できるサンプルが一番ですね。
ところで、CURRENT_TIMESTAMP は、ANSI SQL92 の関数です
から、空の括弧だとエラーになる場合があると思います。
PostgreSQL 7.0.2 だとエラーになります。
select CURRENT_TIMESTAMP();
Error SQL : select CURRENT_TIMESTAMP()
(-403)ERROR: parser: parse error at or near ")"
select CURRENT_TIMESTAMP(0);
timestamp
----------------------
2001-11-06 10:26:38+09
select CURRENT_TIMESTAMP;
timestamp
----------------------
2001-11-06 10:26:12+09
select version();
version
-------------------------------------------------------------
PostgreSQL 7.0.2 on i686-pc-linux-gnu, compiled by gcc 2.95.2
> drop table t;
> create table t (id text, day timestamp);
> grant all on t to nobody;
> insert into t values ('0001', current_timestamp());
> select * from t;
.........略.......
堀田さんが書いてくださった PHP プログラムも 下記環境で
括弧をとって正常実行できます。三田村さんのところで、
何故うまく動かないのか謎ですね。
PHP/4.0.4pl1 + PostgreSQL 7.0.2 + TLJ 6.0
#!/usr/local/bin/php -q
<?php
system("grep Linux /etc/issue");
system("/bin/uname -msr");
printf("PHP version = %s\n", phpversion());
$conn = pg_connect("dbname=idb");
$sql = "update t set day=current_timestamp(0) where id = '0001'";
pg_exec($conn, $sql);
$r = pg_exec($conn, "select * from t where id = '0001'");
printf("day = %s\n", pg_result($r, 0, "day"));
?>
TurboLinux release 6.0 WorkStation (Shiga)
Linux 2.2.13-33 i686
PHP version = 4.0.4pl1
day = 2001-11-06 10:31:37+09
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
PostgreSQL+PHP ソースコードジェネレーター セミナースライド
http://www.shonan.ne.jp/~nkon/cslpg.a.semi/
http://www.SOFTKOUBOU.co.jp/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/