Avatar billede ferdinan Nybegynder
24. januar 2002 - 18:41 Der er 3 kommentarer og
2 løsninger

Dato og SQL7 server

Jeg haer følgeende dato variabler som virker på SQL 2000 server men ikke på SQL7 hvad er galt?

dtmDate = Request.QueryString("date")
dtmToday = Date

If dtmDate = "" Then
    dtmDate = Date
Else
    dtmDate = CDate(dtmDate)
End if
GetMonth=Month(dtmDate)
GetYear=Year(dtmDate)

eventSQL = "SELECT * FROM Tevent WHERE StartDate <= '" & dtmDate & "' AND EndDate >= '" & dtmDate & "' AND Active='True' ORDER BY StartDate asc "


StartDate og EndDate er dato felter i db type smaldatetime.

Denne SQL virker på SQL7

eventSQL = "SELECT * FROM Tevent WHERE Month(StartDate) = '" & GetMonth & "' AND Active='True' ORDER BY StartDate asc"

Men hvordan får jeg den anden SQL til at virke?

Hvordan skal StartDate og EndDate defineres for at virke i den første SQL


ferdinan


Avatar billede ferdinan Nybegynder
24. januar 2002 - 22:52 #1
StartDate og EndDate er dato felter i db type datetime.
Avatar billede coltau Juniormester
25. januar 2002 - 00:05 #2
Jeg kender ikke det format som SQL7 vil ha' - men det er sikkert ikke som du har lavet det.

Men lav et par forsøg med disse:
Access vil eksempelvis have tegnet # omkring en dato i SQL-sætninger. Således: "select * from tabel where dato=#" & myDate & "#"

Paradox vil have måned før år og skråstreger. ?
myDate = "12/28/2001"
Således: "select * from tabel where dato=#" & myDate & "#"

Jeg vil foreslå at du prøver med forskellige formater og forskellige tegn.
Avatar billede ferdinan Nybegynder
25. januar 2002 - 00:20 #3
Dato skrives som 24-01-2002 i databasen....
Avatar billede prh Nybegynder
25. januar 2002 - 01:05 #4
Dato formattet afhænger af opsætning af systemet... Men man kan tvinge
SQL Serveren til at forstå en dato på en specifik måde f.eks formattet:

mm/dd/yy altså en streng : "01/15/02"... (kendes som style nr. 1, brugt
i USA)

For at være 100% sikker (hvis du ikke kender settings på serveren) så kan
du sørge for at lave din sætning som :

eventSQL = "SELECT * FROM Tevent WHERE StartDate <= CONVERT(datetime, '" & dtmDate & "', 1) AND EndDate >= CONVERT(datetime, '" & dtmDate & "', 1) AND Active='True' ORDER BY StartDate asc "

Jeg skriver lige et par relevante styles mere her :

yy.mm.dd - ansi - 2
dd/mm/yy - british/frech - 3
yymmdd  - iso - 12

Hvis du vil have årstal 4-cifret så skriv styles'ene som 101, 102, 103
etc.

Hvis du har en SQL Server Books Online kan du slå op under CAST and
CONVERT for alle de forskellige styles... :)

Mvh Svøllen (håber det løser problemet)
Avatar billede ferdinan Nybegynder
25. januar 2002 - 01:29 #5
YES.....det virker som det skal

genialt

Mange tak


ferdinan
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