こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

[MYSQL]TIMESTAMPをWHERE句に指定しUPDATEする方法

以下のようにテーブルを作成し、TIMESTAMP型のカラムをキーにUPDATEをしたいと考えています。

create table test(time timestamp, amount int);
insert into test values('2008-01-07 19:15:12',0);
update test set amount = -1 where time = '2008-01-07 19:15:12';

ところがMYSQLではUPDATE後、TIMESTAMPのカラムが2008年から2009年に変化します。ORACLEで試しましたが、TIMESTAMP型のカラムは変わりませんでした。

+---------------------+--------+
| time | amount |
+---------------------+--------+
| 2009-06-30 10:04:53 | -1 |
+---------------------+--------+

MYSQLの独自の仕様があるのでしょうか?

MYSQL 5.1.35(mysql-essential-5.1.35-win32.msi)
Windows 2003 Server Standard Edition R2
MYISAM

投稿日時 - 2009-06-30 10:12:07

QNo.5086312

暇なときに回答ください

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

>create table test(time timestamp, amount int);

デフォルト値を設定せずにtimestamp型のフィールドをつくると
ON UPDATE CURRENT_TIMESTAMP属性がつきます。
すなわち、データが更新するたびにその時間に合わされるということです。

create table test(time timestamp DEFAULT CURRENT_TIMESTAMP, amount int);

とすればよいでしょう。

しかしこれは、timestamp型ではなくdatetime型にすればよい気が
するのですが・・・

投稿日時 - 2009-06-30 12:10:02

お礼

thanks for your reply

投稿日時 - 2009-07-01 13:07:29

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問