SQL Cmd, Date Time

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/sql_cmd_date_time_70892/page_1 - zur Vollversion wechseln!


ManAtWork schrieb am 12.03.2003 um 19:32

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 schrieb am 12.03.2003 um 20:04

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 schrieb am 12.03.2003 um 20:21

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 schrieb am 12.03.2003 um 20:27

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 schrieb am 12.03.2003 um 20:38

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 schrieb am 12.03.2003 um 21:02

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 schrieb am 12.03.2003 um 21:28

na ich greif mit VBScript sprich asp drauf zu deshalb die notation...


atrox schrieb am 12.03.2003 um 21:32

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 schrieb am 12.03.2003 um 23:24

ja es funkt eh noch immer nicht...
und wie sieht die in dem fall aus?


atrox schrieb am 13.03.2003 um 00:04

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      |
+---------------------+--------------------------+


ManAtWork schrieb am 13.03.2003 um 02:29

ja so funkts endlich
thx!




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025