Zeit vergleichen

Zeit vergleichen

am 03.05.2006 15:43:22 von Andreas Gebel

Hallo,
ich möchte das bestimmte Datensätze nur zu bestimmten Zeiten ausgelesen
bzw. geupdadet werden können. Habe dafür folgende Abfrage gemacht:

$sql = " UPDATE
user
SET
zeit = NOW()

WHERE
CURTIME() > '18:00:00'";

Hier soll er wenns nach 18:00 Uhr ist einen neuen Zeitstempel einfügen.
Leider funzt es nicht. Was könnte daran falsch sein?

Danke schon mal im Voraus für die Hilfe.

Gruß Andreas

Re: Zeit vergleichen

am 03.05.2006 16:10:46 von Helmut Chang

Andreas Gebel schrieb:
> Hallo,
> ich möchte das bestimmte Datensätze

Und die bestimmst du wie?

> WHERE
> CURTIME() > '18:00:00'";

AND whatever = ?

> Hier soll er wenns nach 18:00 Uhr ist einen neuen Zeitstempel einfügen.
> Leider funzt es nicht.

Fatal Error: Not enough input for function funzt().

> Was könnte daran falsch sein?

Das du uns nicht erzählst, was nicht funzt.

Ins Blaue geraten updated dein Statement nach 18:00 alle Datensätze in
der Tabelle.

gruss, heli

Re: Zeit vergleichen

am 03.05.2006 16:40:15 von Thomas Rachel

Andreas Gebel wrote:

> Hier soll er wenns nach 18:00 Uhr ist einen neuen Zeitstempel einfügen.

Einfügen oder aktualisieren? UPDATE aktualisiert. INSERT fügt ein. Was denn
nun?


> Leider funzt es nicht. Was könnte daran falsch sein?

Erkläre doch bitte, was Du mit "funzt nicht" meinst.

Kommt eine Fehlermeldung? Passiert überhaupt etwas? Welchen Wert hat denn
curtime() zum jeweiligen Zeitpunkt? Wie sieht die Tabelle user aus?

Hier grade getestet:

create temporary table user (zeit datetime);
show create table user\G
*************************** 1. row ***************************
Table: user
Create Table: CREATE TEMPORARY TABLE `user` (
`zeit` datetime default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0,00 sec)

insert into user values (NULL);
UPDATE user SET zeit = NOW() WHERE CURTIME() > '14:00:00'; # 18:00:00 paßt
jetzt noch nicht...
select * from user;
+---------------------+
| zeit |
+---------------------+
| 2006-05-03 16:37:43 |
+---------------------+
1 row in set (0,00 sec)


Paßt.



Ist vielleicht die Tabelle leer und von daher auch kein Datensatz zum
Updaten da?



Thomas