Mach es doch nicht so kompliziert. 

Erstens:  hinter jedem Zeit- und Datumswert steckt eine Zahl (die
Serielle Zahl).  Die Einheit f�r beides ist der Tag.  Ein halber Tag ist
also 12 Stunden, 7 Tage eine Woche.  Sprich will ich was addieren, mache
ich mal plus 0,5 und das n�chste Mal plus 7. 

Zweite Erkenntnis: da die Einheit Tage ist, brauche ich zur Berechnung
von Datumsdifferenzen keine DateDiff Funktion.  Grund siehe oben;
simples plus oder minus tut es. 

Drittens: Datenbankfelder k�nnen beides enthalten: Zeit und Datum.  Die
Funktion now() tut es immer: sie hat Zeit und Datum.  Dieser feine
Unterschied schmeisst manchmal aus dem Ruder.  Etwa wenn da Abfragen
gestartet werden, die am Ende des Tages auf sowas rauslaufen "zeig mir
alle Forumseintr�ge, die am 25. Dezember 2001, um genau 17:52:34
eingestellt worden".  Klar hab hier mal reichlich �bertrieben; da sagt
jeder "logo kann ja gar nicht gehen" dazu.  Warten wir mal bis zur
n�chsten konkreten Frage in der Richtung  ;-)

Viertens: in der Kalender Situation solltest Du mal klar werden, was Du
nun tats�chlich willst. Konkret wie sehen die Grenzf�lle aus.  Es ist
jetzt genau 25. Dezember 2001, 17:52:34. Ist eine Veranstaltung die um
18:00 losgeht schon vorbei? Wie s�he es mit einer Veranstaltung um 12:00
aus? 

Hilfreich in dem Zusammenhang auch, wenn ich mir klar werde was es alles
an Standardfunktionen gibt
  Time() = Zeit (z.b. 0,5; also 12:00 Uhr)
  Date() = Datum (also etwa 25.12.2001)
  Now()  = jetzt (Zeit und Datum). Als Beispiel heute 12:00 Uhr

F�r den Anfang nehme ich mal einen pragmatischen Fall und sag "alle
Veranstaltungen die zu einer beliebigen Zeit heute stattfinden werden
heute auch noch angezeigt". Wer dann sieht dass die tolle Veranstaltung
xyz vor einer halben Stunde zu Ende ging hat dann leider verloren. 


SELECT
  feld1, feld2
FROM
  tabelle
WHERE
  fix(datumsfeld) >= date()
  AND
  noch_eine_Bedingung

(hoffe Sinn kommt r�ber) 


Gestrige Termine auch noch anzeigen

SELECT
  feld1, feld2
FROM
  tabelle
WHERE
  fix(datumsfeld)+1 >= date()


Nur noch Termine ab morgen anzeigen

SELECT
  feld1, feld2
FROM
  tabelle
WHERE
  fix(datumsfeld)-1 >= date()


Termine in einer Woche

SELECT
  feld1, feld2
FROM
  tabelle
WHERE
  fix(datumsfeld)-7 >= date()


Und damit wir das DateAdd auch mal irgendwo eingebaut haben: Alle
Termine in einem Monat und danach. 

SELECT
  feld1, feld2
FROM
  tabelle
WHERE
  fix(dateadd('m', -1, datumsfeld))) >= date()


Alle Termine die heute vor einem Monat und danach stattfanden

SELECT
  feld1, feld2
FROM
  tabelle
WHERE
  fix(dateadd('m', +1, datumsfeld))) >= date()


Nat�rlich k�nnten man es von der Logik auch umdrehen, in dem ich die
Addition/Subtraktion statt beim linken dann beim rechten Operanden
mache. Und / oder ....  (der Phantasie sind da kaum Grenzen gesetzt). 

Oder Funktionen die kein Argument brauchen, k�nnten sowohl in VBScript
als auch in SQL ohne leere Klammer geschrieben werden. Ich rate davon
ab, denn am Ende weiss wieder niemand mehr wo das Zeugs herkommt und wie
man es am einfachsten verwendet. 

Alle Beispiele �brigens f�r Access.  Mit SQL Server geht es ein bischen
(wenn auch nicht weltbewegend) anders. 


-- 

Viele Gr��e
Hubert Daubmeier 



-----Original Message-----
From: Erik Fichtner [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, December 25, 2001 5:16 PM
To: ASP Diskussionsliste fuer Anfaenger
Subject: [aspdebeginners] DateDiff


Hallo Liste,

ich komme mit diesem DateDiff einfach nicht weiter. Ich verstehe da nur
Bahnhof.. Ich erkl�re euch am besten nocheinmal ganz genau was ich
machen m�chte.

Ich habe einen Kalender programmiert. Dort sind einige Veranstaltungen
gespeichert, die das Programm beim aufrufen der Seite alle zeigt. Bis
hierher ist das ganze noch kein Problem, aber jetzt geht es darum eine
Veranstaltung die schon stattgefunden hat also sprich vorbei ist, darf
jetzt nicht mehr angezeigt werden wenn das Datum schon vorbei ist.
Sprich das er den Eintrag aus der DB l�scht oder halt �bergeht. Ihr
k�nnt euch ja mal den Kalender anschauen. Damit ihr genau wi�t von was
ich eigentlich rede ;-)
(http://www.aspfreak.de/jvu/kalender/veranstaltungen.asp).

Ich habe jetzt von einem Kumpel einen Tip bekommen, das man as ja in den
SQL String einbauen k�nnte. Das w�rde dann in etwa so aussehen: "SELECT
* FROM irgendwas WHERE DateDiff('d',Datum,now())" Kann das
funkktionieren? In einer SQL Anweisung asp ??


Hat jemand von euch auch schon mal so ein Problem gahabt? Wenn ja kann
er/sie mir da mal auf die Spr�nge helfen oder mir ein tutorial verraten.
F�r alle Bem�hungen danke ich schon einmal



MFG


Erik Fichtner


| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp

Antwort per Email an