Avatar billede zeusdk Nybegynder
25. marts 2003 - 22:03 Der er 3 kommentarer og
1 løsning

Datoer i sql

Haisaa'

Jeg har dette script:

strSQL = "SELECT datopublish FROM search WHERE datopublish >= #"  & Year(date) & "-" & month(date) & "-" & Day(date) &  "# AND datopublish < #" & Year(dateadd("yyyy",1,date)) & "-" & month(dateadd("yyyy",1,date)) &  "-" & Day(dateadd("yyyy",1,date)) & "# order by datopublish"

Outputtet ser således ud:
SELECT datopublish FROM search WHERE datopublish >= #2003-3-25# AND datopublish < #2004-3-25# order by datopublish

Men jeg vil gerne have den til at således ud:
SELECT datopublish FROM search WHERE datopublish >= #2003-3-27# AND datopublish < #2004-3-27# order by datopublish

Det vil sige, at den først skal undersøge datoerne 2 dage ude i fremtiden... og ikke fra dags dato.

Kan du ændre i min ovenstående kode, så mit ønske bliver opfyldt ;)
Avatar billede mortrr Praktikant
25. marts 2003 - 23:35 #1
Er det mig der ikke kan læse, eller vil du finde alle som har datopublish >=en dato og <samme dato?
Mener du ikke at den skal se ud som:
SELECT datopublish FROM search WHERE datopublish >= #2003-3-25# AND datopublish < #2004-3-27# order by datopublish

Hvis det altid er fra dags dato og to dage frem, så lad databasen gøre det:
strSQL = "SELECT datopublish FROM search WHERE datopublish >= Date() AND datopublish < DateAdd('d',2,Date()) order by datopublish"

Hvis du selv vil sætte datoen så:
Date1=Date()
Date2=DateAdd("d",2,Date1)
strSQL = "SELECT datopublish FROM search WHERE datopublish >= #"  & Year(date1) & "-" & month(date1) & "-" & Day(date1) &  "# AND datopublish < #" & Year(date2) & "-" & month(date2) &  "-" & Day(date2) & "# order by datopublish"

Flyt dateadd ud så du først laver den nye dato. Det er mere overskueligt og faktisk også hurtigere (da det kun er 1 dateadd).
Hvis
Avatar billede mortrr Praktikant
25. marts 2003 - 23:36 #2
Det var mig det ikke kunne læse. 2003!=2004
Avatar billede mortrr Praktikant
25. marts 2003 - 23:37 #3
Så den nederste skal være:
Date1=Date()
Date2=DateAdd("d",2,Date1)
Date2=DateAdd("yyyy",1,Date1)
strSQL = "SELECT datopublish FROM search WHERE datopublish >= #"  & Year(date1) & "-" & month(date1) & "-" & Day(date1) &  "# AND datopublish < #" & Year(date2) & "-" & month(date2) &  "-" & Day(date2) & "# order by datopublish"
Avatar billede mortrr Praktikant
25. marts 2003 - 23:39 #4
Vi prøver lige igen. 2 dage ud i fremtiden, og så et år frem.
Date1=Date()
Date1=DateAdd("d",2,Date1)
Date2=DateAdd("yyyy",1,Date1)
strSQL = "SELECT datopublish FROM search WHERE datopublish >= #"  & Year(date1) & "-" & month(date1) & "-" & Day(date1) &  "# AND datopublish < #" & Year(date2) & "-" & month(date2) &  "-" & Day(date2) & "# order by datopublish"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester