Avatar billede _petrucci Nybegynder
19. september 2002 - 10:22 Der er 6 kommentarer og
2 løsninger

Dato udtræk

Hejsa,

har et mindre problem med et database udtræk (MS SQL) ud fra et dato interval.

Db felt: LOGTIME (datetime - feks. 19-08-2002 00:00:00)

ASP kode:

dato1 = Now()  - periode (f.eks. 30 dage)
dato2 = Now()

SQLsoeg = "SELECT * FROM TAELLER_BLANKET where LOGTIME between " & dato1 & " and " & dato2 & " ORDER BY LOGTIME DESC"
set rsGO = myConn.Execute(SQLsoeg)

Jeg får følgende fejl når jeg kører sql'en:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '10'.

/statistik.asp, line 35


Jeg ved at der er noget ivejen med datoformatet, men hvordan fikses det?
Avatar billede tknudsen Nybegynder
19. september 2002 - 10:24 #1
prøv at sætte 'er ind omkring datoen...


"SELECT * FROM TAELLER_BLANKET where LOGTIME between '" & dato1 & "' and '" & dato2 & "' ORDER BY LOGTIME DESC"
Avatar billede _petrucci Nybegynder
19. september 2002 - 10:25 #2
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
Avatar billede tknudsen Nybegynder
19. september 2002 - 10:31 #3
prøv et følgende:

"SELECT * FROM TAELLER_BLANKET where LOGTIME between '2000-01-01 00:00:00' and '2002-12-31 23:59:59' ORDER BY LOGTIME DESC"

"SELECT * FROM TAELLER_BLANKET where LOGTIME between '01-01-2000 00:00:00' and '31-12-2002 23:59:59' ORDER BY LOGTIME DESC"


for at se om det er 'erne og/eller formatet det er galt med
Avatar billede _petrucci Nybegynder
19. september 2002 - 10:35 #4
hoold da op jeg fik det selv til at virke - ufatteligt stærkt gået, lol

løsning:  at tilføje set dateformat dmy foran select.  meen du får da alligevel halvdelen af points pga. plingerne (der skal plinger + set dateformat dmy på før det virker)
Avatar billede tknudsen Nybegynder
19. september 2002 - 10:36 #5
fedt at det funger ... :-)
Avatar billede tknudsen Nybegynder
19. september 2002 - 10:36 #6
Må jeg (vi) sen den endelige query streng ?
Avatar billede _petrucci Nybegynder
19. september 2002 - 10:44 #7
SQLsoeg = "set dateformat dmy SELECT * FROM TAELLER_BLANKET where LOGTIME between '" & dato1 & "' and '" & dato2 & "' ORDER BY LOGTIME DESC"
Avatar billede tknudsen Nybegynder
19. september 2002 - 10:47 #8
ahh - ok ... det er en-aller-anden global mssqlsrv variabel (?), som man sætter. Smart. Det kunne man jo gøre i starten af sin applikation, så skulle man ikke tænke over det ved hver query...
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