"We are back" « oc.at

SQL Cmd, Date Time

ManAtWork 12.03.2003 - 19:32 620 10
Posts

ManAtWork

Little Overclocker
Avatar
Registered: Apr 2002
Location: down under
Posts: 116
Kurze blöde Frage:
möchte einen SELECT Befehl machn der folgendes kann:
hab ein Feld im Format zB.: 12.03.03 18:30:00 (sprich datetime)

und möchte alle Datensätze haben die Now - 24 Stunden sind

sprich die vor mehr als 24 Stunden eingetragen wurden

wie muss die WHERE Klausel da aussehen??

thx

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
hmm... imho müsste das mit
where datum=now-24*60*60
gehen, wenn der feldtyp wirklich datetime und nicht ein string is...

ps: mysql oder sql?

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
datumsfunktionen sind zwischen den verschiedenen db-herstellern sehr unterschiedlich :( aber bei mysql sollte es so funktionieren wie watchout es schrieb, allerdings kleiner < statt gleich =, weil ja alle datensätze gesucht sind, die vor mehr als 24 stunden eingetragen wurden.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von atrox
kleiner < statt gleich =
oh, ja... hab ich wohl überlesen... nein ich wollt sagen ah... ein bisserl muss er ja selber denken :p

ManAtWork

Little Overclocker
Avatar
Registered: Apr 2002
Location: down under
Posts: 116
mysql

funkt nicht...

WHERE Datumsfeld < '"& now - 1 &"'

mit -1 zieht er einen tag ab

doch egal welches ergebnis, kleiner oder grösser er liefert mir immer alle ergebnisse und das format passt...

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
die &-notation ist glaub ich nur bei access üblich, oder ? woher hast du das ?

oben war natürlich noch ein fehler... unter mysql ist es 'now()'
mysql unterscheidet leider auch zwischen date, datetime und timestamp.

bei datetime ist der einfachste weg:

where dateumsfeld < now() - interval 1 day;

für mehr info, siehe:
http://www.mysql.com/doc/en/Date_calculations.html
http://www.mysql.com/doc/en/Date_an..._functions.html

ManAtWork

Little Overclocker
Avatar
Registered: Apr 2002
Location: down under
Posts: 116
na ich greif mit VBScript sprich asp drauf zu deshalb die notation...

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
aber nachdem datumsfeld eine spalte in einer mysql-tabelle ist, und dein sql-query auf dem mysql-server ausgeführt wird, mußt du die mysql-notation verwenden.

ManAtWork

Little Overclocker
Avatar
Registered: Apr 2002
Location: down under
Posts: 116
ja es funkt eh noch immer nicht...
und wie sieht die in dem fall aus?

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
hast du mein vorriges post berücksichtigt ?
wie sieht da sql-statement denn jetzt aus ?

Code:
mysql> select now(),now() - interval 24 hour;
+---------------------+--------------------------+
| now()               | now() - interval 24 hour |
+---------------------+--------------------------+
| 2003-03-13 00:03:19 | 2003-03-12 00:03:19      |
+---------------------+--------------------------+
Bearbeitet von atrox am 13.03.2003, 00:06

ManAtWork

Little Overclocker
Avatar
Registered: Apr 2002
Location: down under
Posts: 116
ja so funkts endlich
thx!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz