webForumDet fria alternativet

Ta bort datum --> access

5 svar · 226 visningar · startad av NETwork

NETworkMedlem sedan juni 20011 732 inlägg
#1

Jag har en tabell i en accessdatabas med bland annat en datum-kolumn. Jag försöker göra en funktion som tar bort alla rader där datumet är _före_ dagens datum, men jag får det inte att funka. Kan man inte göra så här!?

"DELETE FROM Kalender WHERE Datum < "+DateTime.Now

Jag får inget felmeddelande, men den raderar heller inget i databasen.

------------------
Jag kan inte komma på någon signatur.

[Redigerat av NETwork den 30 jan 2002]

@ndersMedlem sedan juni 200032 969 inlägg
#2
DELETE FROM Kalender WHERE Datum < Now()

?

NETworkMedlem sedan juni 20011 732 inlägg
#3

Jag programmerar i c# och DateTime.Now (eller DateTime.Today) är dagens datum och den borde väl kunna jämföras med ett datumfält i en accessdatabas? Inte heller om jag typkonverterar den till en sträng så fungerar det ... DateTime.Now.ToSTring(); ... men det ska man väl inte göra heller?

------------------
Jag kan inte komma på någon signatur.

[Redigerat av NETwork den 30 jan 2002]

NETworkMedlem sedan juni 20011 732 inlägg
#4

Skriver jag ut sql-strängen så ser den ut så här:

DELETE FROM Kalender WHERE datum < 2002-01-30

Den tar inte bort några datum alls här. Om jag däremot vänder på den:

DELETE FROM Kalender WHERE datum > 2002-01-30

...då tar den bort ALLA poster i databasen, både de som ligger framför och efter dagens datum. Vad är detta??????????????

------------------
Jag kan inte komma på någon signatur.

LarsGMedlem sedan dec. 200012 464 inlägg
#5
DELETE FROM Kalender WHERE datum > 2002-01-30

är samma som

DELETE FROM Kalender WHERE datum > 1971

right?

Det fungerar eftersom dataum lagras som ett numeriskt värde, närmare bestämt som antalet sekunder sedan år 1900. Eftersom alla dina datum är mer än 2000 sekunder efter år 1900 så försvinner dom.

Du kan göra som @nders skrev och använda den funktion som finns i Access eller så får du skriva

"DELETE FROM Kalender WHERE Datum < #"+DateTime.Now + "#"

så att access tolkar det som ett datum och inte ett tal.

------------------
essentitia preter non sans multiplicandum

NETworkMedlem sedan juni 20011 732 inlägg
#6

Aha, nu är jag på rätt spår igen, det funkar perfekt! :)

------------------
Jag kan inte komma på någon signatur.

133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)