Just nu i M3-nätverket
Gå till innehåll

"enkel" WHERE-fråga


lillen_009

Rekommendera Poster

Kan man i WHERE-villkoret selektera att datumet i databasen ska vara mindre än eller lika med idag?

 

... WHERE day_date =< [today]

 

Länk till kommentar
Dela på andra webbplatser

Jorå, använd CURRENT_DATE.:

 

WHERE datecol <= CURRENT_DATE

 

(Kan dock meddela att en del mindre standardiserade databashanterare kan ha andra funktioner än ISO/ANSI SQL:s CURRENT_DATE.)

 

Länk till kommentar
Dela på andra webbplatser

I Oracle:

 

select * from TABELL where DATE_KOLUMN <= sysdate

 

Ovanstående är dock på sekunden exakt, vill du ha dagens datum (och även de datum som kanske kommer lite senare under dagen, i en kalender exemplelvis) så är följande att föredra:

 

select * from TABELL where DATE_KOLUMN < TRUNC(sysdate+1)

 

((

och för er som inte förstår ovanstående och vill påpeka detta:

Ja, det är symantiskt likvärdigt med:

select * from TABELL where TRUNC(DATE_KOLUMN) <= TRUNC(sysdate)

men mycket snabbare eftersom DATE_KOLUMN troligtvis är indexerad och databasens optimizer kan arbeta med indexet istället för att göra en "full table scan". TRUNC(sysdate+1)

))

 

/Charlie Elgholm

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...