MySQL: update + interval

Sziasztok!

Segítséget kérnék a következőben:

egy mysql táblában time típusú mező ("ido") értékét szeretném egységesen egy órával megnövelni adott dátumú rekordok esetén (amit a "datum" mező tartalmaz)


update tablanev set ido = ( ido + INTERVAL 1 HOUR) where datum = '2009-01-20';

nem működik, de talán az interval lesz a dolog kulcsa.

Hozzászólások

mysql> select now() + interval 1 hour;
+-------------------------+
| now() + interval 1 hour |
+-------------------------+
| 2009-04-20 17:06:24 |
+-------------------------+
1 row in set (0.00 sec)

Szerintem az ido nem jo tipusu, az intervalt igy kell hasznalni, ahogy hasznalod.

A time tipussal sincs baj, valami mas van, ha adsz reszletesebb infot segitek:
mysql> create table t (t time);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t values (now());
Query OK, 1 row affected (0.01 sec)

mysql> select * from t;
+----------+
| t |
+----------+
| 16:08:06 |
+----------+
1 row in set (0.00 sec)

mysql> update t set t=now() + interval 1 hour;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from t;
+----------+
| t |
+----------+
| 17:08:55 |
+----------+
1 row in set (0.00 sec)

vagy esetleg hasznalj valami epkezlab idopont tipust egy oszlopban, ne vagd ketfele az egyuve tartozo informaciokat.
Ha ez pl egy vasarlokat tartalmazo adatbazis, es az idopont az gmtben van tarolva, ahhoz adsz hozza egyet, akkor a keso esti vasarlo akar 24:36 kor is jarhatott a kasszanal...