Toon posts:

Access: Date() terugtellen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik heb een database met een kolom waarin continu nieuwe datums (van de dag van inlezen) bijkomen.
Nu wil ik wekelijks een uitdraai maken van alle records die 1 maand geleden ingelezen zijn, totaan de huidige datum.

Ik wilde dit aanvankelijk met de functie date() doen, maar ik betwijfel of ik aan de hand van deze functie ook puur naar de maand _in_ de teruggevonden date() kan relateren.

Ik vond daarna de functie dateAdd() maar deze lijkt echter bedoelt te zijn voor datums die in de toekomst pas worden ingelezen.

Het enige wat ik tot nu toe verzonnen krijg (dankzij TechontheNet) is:

DateAdd("m";-1;Date())

Ik krijg op deze manier echter geen records terug uit de query, waarschijnlijk omdat ik als waarde voor "m" (maand) geen negatief getal mag gebruiken bij deze functie.

Wie o wie kan mij helpen?

  • Cyphax
  • Registratie: November 2000
  • Nu online

Cyphax

Moderator LNX
Ik zou het proberen met dateDiff() :)

Overigens zou je wel negatieve waarden moeten mogen gebruiken in dateAdd(), dat 'ie niet werkt kan ook een andere oorzaak hebben (probeer die date() eens te vervangen door getdate()?)
Een voorbeeldquery met negatieve datum:
SQL:
1
2
3
4
5
6
7
8
9
SELECT 
    DISTINCT 
    a.title_id, 
    title, 
    YEAR(ord_date) AS year_sold 
FROM sales a INNER JOIN titles b
ON a.title_id = b.title_id
WHERE 
ord_date > = DATEADD(YEAR, -9, GETDATE())

bron

[ Voor 88% gewijzigd door Cyphax op 15-08-2006 12:01 ]

Saved by the buoyancy of citrus


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op dinsdag 15 augustus 2006 @ 11:54:
[...]

DateAdd("m";-1;Date())

Ik krijg op deze manier echter geen records terug uit de query, waarschijnlijk omdat ik als waarde voor "m" (maand) geen negatief getal mag gebruiken bij deze functie.
Dateadd("m",-1,date()) is correct. Post de hele sql eens?

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
SELECT test.RecordDate
FROM test
WHERE (((test.RecordDate)=DateAdd("m";-1;Date())));
Query even versimpeld door puur het datumveld te selecteren. Er staan sowieso data van binnen de laatste 4 weken in de tabel en het gegevenstype voor RecordDate staat ook op Datum/Tijd. (maar anders zou de functie waarschijnlijk sowieso niet werken.)

Voor de duidelijkheid, hij voert de query wel uit, maar returned niets.

Misschien toch datediff gebruiken?

[ Voor 4% gewijzigd door Verwijderd op 15-08-2006 12:09 ]


  • Gummie
  • Registratie: Maart 2000
  • Laatst online: 14-02 15:49
Probeer onderstaande code is. Ik heb dit probleem ook gehad en heb het op onderstaande manier opgelost.

code:
1
2
3
SELECT test.RecordDate
FROM test
WHERE DateValue(test.RecordDate) = DateAdd("m";-1;Date());

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
> ipv = (Je wilt alle data na de datum die je selecteert, en niet alleen precies die datum)

Verwijderd

Topicstarter
Gummie schreef op dinsdag 15 augustus 2006 @ 12:24:
Probeer onderstaande code is. Ik heb dit probleem ook gehad en heb het op onderstaande manier opgelost.

code:
1
2
3
SELECT test.RecordDate
FROM test
WHERE DateValue(test.RecordDate) = DateAdd("m";-1;Date());
Die doet het hem. (met verandering van = in >)

Bedankt allen :)

Slotje!

  • lier
  • Registratie: Januari 2004
  • Laatst online: 15:38

lier

MikroTik nerd

Als je een "totaan" wil hebben moet je natuurlijk je query wel wat aanpassen...

Werkt de between niet in jouw geval:

WHERE ord_date BETWEEN DateAdd("m",-1,Date()) AND Date()
Let even op dat je geen ; maar een , gebruikt !

(test voor jezelf even met SELECT DateAdd("m",-1,Date()) AS TestDatum;)


edit:
Sneller typen/testen/enz.

[ Voor 6% gewijzigd door lier op 15-08-2006 12:30 ]

Eerst het probleem, dan de oplossing


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Verwijderd schreef op dinsdag 15 augustus 2006 @ 12:28:
[...]


Die doet het hem. (met verandering van = in >)

Bedankt allen :)

Slotje!
'Probleem is opgelost, dus topic kan dicht' :*

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1