Avatar billede skywalkerdk Nybegynder
09. september 2002 - 10:01 Der er 29 kommentarer

SQL Dato "between" eller < og >??

"SELECT * FROM Udlaan WHERE #"& day(curDate) &"-"& month(curDate) &"-"& year(curDate) &"# BETWEEN UdlaanStart AND UdlaanSlut;"

Ovenstående SQL virker ikke, heller ikke selvom jeg bytter day & month rundt, så viser den tvært imod bare begivenheden HVER måned på samme dato'er.

Denne virker heller ikke?..

EachDaySQL1 = "SELECT * FROM Udlaan WHERE #" & curDate & "# >= UdlaanStart AND #" & curDate & "# <= UdlaanSlut;"

Hvordan hulen kan jeg tjekke om den nuværende dato findes IMELLEM to dato'er fra min database!?

~Thomas
Avatar billede bennytordrup Nybegynder
09. september 2002 - 10:04 #1
Du skal ikke bruge # i forbindelse med datoer på SQL Server.
Avatar billede bennytordrup Nybegynder
09. september 2002 - 10:06 #2
"select * from Udlaan where '" +year(curdate) + month(curdate) + day(curdate) + "' between udlaanstart and udlaanslut"

year, month og curdate skal selvfølgelig formatteres til strenge, year skal være fire cifre og de øvrige 2.
Avatar billede terry Ekspert
09. september 2002 - 10:11 #3
where are you using th eSQL?`If it is in SQL Server then it is correct to us ' as benny says, but if you are amking a query (NOT PASSTHROUGH) from Access for example, then you use #

You should alwats format the date either YYYY-MM-DD or MM-DD-YYYY
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 10:32 #4
Jeg benytter en Access Database.
Avatar billede bennytordrup Nybegynder
09. september 2002 - 10:34 #5
Får du en fejlmeddelelse eller returneres der bare ikke nogle data?
Avatar billede bennytordrup Nybegynder
09. september 2002 - 10:36 #6
Hvordan er din adgang til SQL Server fra Access?
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 10:40 #7
<%
DBloc = (Server.MapPath(".")) & "\database.mdb"
DBlocW = (Server.MapPath(".")) & "\"

set DB = Server.CreateObject("ADODB.Connection")
DB.Open "DBQ=" & DBloc & "; DefaultDir=DBQ=" & DBlocW & ";Driver={Microsoft Access Driver (*.mdb)};"
%>

-

Den returnere ikke en fejlmeddelelse, den sorterer dem bare ikke rigtigt. Dvs. Hvis jeg laver en reservation d.6-9 i en måned viser SQL udtrækket at der er reservation d.6-9 i ALLE måneder.. (?)
Avatar billede terry Ekspert
09. september 2002 - 10:41 #8
"SELECT * FROM Udlaan WHERE #" & Format(curDate, "YYYY-MM-DD") & "# >= UdlaanStart AND #" & Format(curDate, "YYYY-MM-DD") & "# <= UdlaanSlut;"
Avatar billede bennytordrup Nybegynder
09. september 2002 - 10:41 #9
Du er i forkert kategori!
Avatar billede bennytordrup Nybegynder
09. september 2002 - 10:41 #10
Det her er MS SQL Server, ikke Access
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 10:42 #11
SELECT * FROM Udlaan WHERE #1-9-2002# BETWEEN UdlaanStart AND UdlaanSlut

Sådan ser SQL'en ud når jeg laver en response.write SQL.

UdlaanStart og UdlaanSlut er altid angivet i følgende format: "DD-MM-ÅÅ"
Avatar billede terry Ekspert
09. september 2002 - 10:43 #12
?
Are we talink ASP an NOT access, what are we doing in SQL Server
Avatar billede bennytordrup Nybegynder
09. september 2002 - 10:44 #13
Terry, as I see this, were talking an SQL statement against an Access Database from ASP.
Avatar billede terry Ekspert
09. september 2002 - 10:46 #14
Yes I think your right Benny.

skywalkerdk you MUST format your date YYYY-MM-DD or MM-DD-YYYY NOT DD-MM-YYYY
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 10:54 #15
Hvordan omformaterer jeg mine data fra databasen til at være YYYY-MM-DD når jeg udtrækker dem i SQL'en?
Jeg kan ikke ændre formatet i databasen nu.

How do i re-format my data from my database to YYYY-MM-DD when extracting them using SQL?..
I can't change format in the database now.
Avatar billede terry Ekspert
09. september 2002 - 11:01 #16
The format in the dB is NOT the problem! You have to format the date in your ASP (SQL) to YYYY-MM-DD. If your using VBScript then I think you can use the format function
Format(TheDateField, "YYYY-MM-DD")
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 11:10 #17
SQL = "SELECT * FROM Udlaan WHERE #1-9-2002# BETWEEN UdlaanStart AND UdlaanSlut"

I need to change UdlaanStart & UdlaanSlut, what's the syntax for this action?..
Avatar billede bennytordrup Nybegynder
09. september 2002 - 11:12 #18
skywalkerdk>> Det er ikke udlaanstart og udlaanslut, der skal formatteres. Det er #1-9-2002#, der skal formatteres efter terrys anvisninger.
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 11:14 #19
Det virker stadig ikke. Den viser stadig dato'erne (eks. 6,7,8) i hver måned og ikke kun den ene måned som den burde.
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 11:16 #20
SELECT * FROM Udlaan WHERE #2002-9-1# BETWEEN UdlaanStart AND UdlaanSlut

Sådan er den formateret.
Avatar billede terry Ekspert
09. september 2002 - 11:17 #21
AND?
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 11:19 #22
Skal der ikke stå "AND"?
Avatar billede terry Ekspert
09. september 2002 - 11:22 #23
I mean AND does it work? Your SQL from 09/09-2002 11:16:05
SELECT * FROM Udlaan WHERE #2002-9-1# BETWEEN UdlaanStart AND UdlaanSlut
Avatar billede bennytordrup Nybegynder
09. september 2002 - 11:22 #24
Jo, for det hører med til between
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 11:24 #25
Nej, det virker ikke.

Afvikler jeg den viser den at uanset hvilken måned jeg kigger på er der en reservation på de pågældende dato'er, altså 7,8,9. Men den skal jo kun vise at de er reserveret i én måned.
Avatar billede terry Ekspert
09. september 2002 - 11:26 #26
I suggest you CUT and Paste your SQL directly into a query in Access. That way you have a better chance to see what is wrong. Then once that is working you can see exactly how the SQL should be.
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 11:34 #27
i Access virker:
"SELECT * FROM Udlaan WHERE #2002-09-09# >= UdlaanStart AND #2002-09-09# <= UdlaanSlut;"

Men kører jeg den på sitet viser den stadig bare at d.7 til d.10 er reserveret i alle måneder.
Avatar billede bennytordrup Nybegynder
09. september 2002 - 11:37 #28
Prøv

SELECT * FROM Udlaan WHERE DateSerial(2002, 9, 9) BETWEEN UdlaanStart AND UdlaanSlut;
Avatar billede skywalkerdk Nybegynder
09. september 2002 - 12:17 #29
virker ikke...

Jeg testet både på min egen og hos mit webhotel.
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
Computerworld tilbyder specialiserede kurser i database-management

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