Avatar billede dd_ns Nybegynder
04. april 2003 - 10:29 Der er 17 kommentarer

date start og stop...

Hvordan laver jeg en SQL string hvor where skal være i stil med:


jeg har en start dato og en stop dato i min database...

Den skal så kun tage de entrys med hvor datoen idag passer ind...

Hvis vi nu siger startdato er 1/1/2001
og
Hvis vi nu siger stopdato er 31/12/2001

hvis vi så nu siger at min dato idag er 5/5/2001 så skal alle entrys med startdato og stopdato som oven for med...

Men hvis en post har startdato og stopdato længere fremme, f.eks 2006 så skal de ikke med...

Er der nogle der forstår dette?
Avatar billede eagleeye Praktikant
04. april 2003 - 10:41 #1
Du kan lave det med SQL i sådan her hvis det er dags dato du vil tjekke for:

SQL = "SELECT * FROM xx WHERE startdato <= Date() AND stopdato >= Date()"
Avatar billede fennec Nybegynder
04. april 2003 - 10:42 #2
where startdato <= 'din dato' and slutdato >= 'din dato'
Avatar billede dd_ns Nybegynder
04. april 2003 - 10:43 #3
Det virker ikke lige helt det der...
Avatar billede eagleeye Praktikant
04. april 2003 - 10:44 #4
Hvilken database er det?
Avatar billede dd_ns Nybegynder
04. april 2003 - 10:44 #5
sql 2000
Avatar billede fennec Nybegynder
04. april 2003 - 10:45 #6
du kan også skrive:
where ('din dato' between startdato and slutdato)
Avatar billede eagleeye Praktikant
04. april 2003 - 10:45 #7
Hvis du vil overføre datoen via SQL så husk at SQL skal have datoen i US/UK format yyyy-mm-dd eller mm-dd-yyyy, hvis kolonnerne startdato og slutdato er defineret som dato/tids type.

datoStr = Year(Date) & "-" & Month(Date) & "-" & Day(Date)

SQL = "SELECT * FROM xx WHERE startdato <= #" & datoStr & "# AND stopdato >= #" & datoStr & "#"
Avatar billede eagleeye Praktikant
04. april 2003 - 10:46 #8
Så skal det være med ' og ikke #
SQL = "SELECT * FROM xx WHERE startdato <= '" & datoStr & "' AND stopdato >= '" & datoStr & "'"
Avatar billede dd_ns Nybegynder
04. april 2003 - 10:46 #9
Det er det der er problemet...

Det er danske datoer, og det er IKKE i et datotime felt...

Kan jeg ikke omgåes det, eller fortælle SQL at den skal køre dansk system???
Avatar billede eagleeye Praktikant
04. april 2003 - 10:53 #10
Ja på en eller anden måde kan man sige et felt skal tolkes som dato og ikke tekst. I Access bruger man CDate men det virker nok ikke. Jeg ved ikke helt hvad den hedder i SQL 2000. Måske DATETIME


SQL = "SELECT * FROM xx WHERE DATETIME(startdato) <= Date() AND DATETIME(stopdato) >= Date()"
Avatar billede dd_ns Nybegynder
04. april 2003 - 10:55 #11
Hvad skal jeg gøre ved maskinen for at får dansk??? Jeg har lavet language om til dansk i SQL, men skal region settings også laves om???
Avatar billede eagleeye Praktikant
04. april 2003 - 11:02 #12
Det skulle ikke være nødvendigt med region settings men det skal som du har gjort sættes til dansk i SQL serveren så DATETIME functionen formatere datoen rigtigt.
Avatar billede dd_ns Nybegynder
04. april 2003 - 11:02 #13
ja, det har jeg prøvet, og den siger stadigvæk fejl når jeg prøver at formatere feltet fra nvarchar til datetime


Nogle ider?
Avatar billede eagleeye Praktikant
04. april 2003 - 11:08 #14
Det kan vist være du skal bruge Convert.. Se her måske det hjælper:
http://dbforums.com/arch/7/2002/4/349235
Avatar billede KLS Novice
11. maj 2003 - 17:06 #15
Hej david.

der er noget med at man kan sætte en session i session.LCID="1033" eller noget i den stil... det burde måske virke.


/klaes
Avatar billede KLS Novice
11. maj 2003 - 17:06 #16
Og det var Global.asa jeg mente.
Avatar billede fennec Nybegynder
19. juli 2005 - 09:10 #17
Kan vi få lukket spørgsmålet??
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