Zeitintervalle in VB Script mit DateAdd berechnen

  • ASP

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Mono.

    Zeitintervalle in VB Script mit DateAdd berechnen

    Hallo,
    ich raufe mir schon seit Tagen die Haare, wie ich Zeitbereiche für eine Statistik berechnen soll.
    Bsp. SQL Abfrage: Wie viele Bücher wurden im letzten Monat verkauft?
    Da wir jetzt den 06. Januar haben, sollte der Startwert 01.12.2009 lauten, und nicht 06.12.2009 wenn ich mit DateAdd 1 Monat abziehe.

    Dim dtmFrom
    Dim dtmTo
    dtmFrom = DateAdd("d", (1 - DatePart("d", Now())), Now())
    'liefert die Verkäufe in diesen Monat, also seit 01.01.2010 (richtig)

    dtmFrom = DateAdd("m", -1, Now())
    'liefert die Verkäufe ab 06.12.2009 (falsch, es sollte der 01.12.2009 sein)

    weiterhin benötige ich
    in diesem Jahr (also seit 01.01.2009 bis Heute)
    in den letzten 3 Monaten (von heute gerechnet, also seit 01.10.2009 bis 31.12.2009 weil der Januar noch nicht um ist)
    in den letzten 6 Monaten (von heute gerechnet, also seit 01.07.2009 bis 31.12.2009)
    in den letzten 9 Monaten (von heute gerechnet, also seit 01.04.2009 bis 31.12.2009)
    im letzten Jahr (von heute gerechnet, also seit 01.01.2009 bis 31.12.2009)
    VB ist eigentlich nicht meine Sprache, ich komme vom C++. Für eine Webseite benötige ich aber diese Berechnungen in VB.

    Wer kann mir da helfen?

    Visual Basic-Quellcode

    1. dim x, dtm1, dtmfrom
    2. x=1 'bsp für 1 monat, können auch mehr "abgezogen" werden..
    3. dtm1 = Dateadd("m", -x, Now)
    4. dtmfrom = Dateserial(year(dtm1),month(dtm1),1) 'hier setzt du den tag auf 1
    5. wscript.echo dtmfrom 'gibt den ersten tag des monats vor x monaten als datum aus


    hoffe das ist was du meintest

    gruß
    Das ist meine Signatur und sie wird wunderbar sein!