webForumDet fria alternativet

Varför felmedelande?

ASP

12 svar · 275 visningar · startad av nisslass

Medlem sedan nov. 2001348 inlägg
Frågan#1

Hej!

Varför får jag ett felmeddelande på detta?:

SQL = "select count(*) as antal from table where A='2' AND B='1' AND Bokningsdatum < #" & dateAdd("d",-12,Date) & "#"

Jag får
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'

[TCX][MyODBC]You have an error in your SQL syntax near '' at line 1

Medlem sedan jan. 20032 285 inlägg
#2

Om du inte använder Access ska du inte använda # runt datum. Om du använder Access vet jag inte vad som är fel.

Medlem sedan nov. 2001348 inlägg
#3

Jag använder mySQL.. tar jag bort # får jag 0. Men jag VET att det inte ska bli 0.... Hur jämför den nu?
Bokningsdatum är ju i formatet åååå-mm-dd tt:mm:ss
Och nu kollar den ju om Bokningsdatum < 2003-04-01
Alltså.. skiter den i tiden när den kollar??

Medlem sedan dec. 20003 563 inlägg
#4

Testa byt ut date --> date.now() istället.
dateAdd("d",-12,Date.now())

Medlem sedan nov. 2001348 inlägg
#5

Nope..
Vill alltså kunna räkna och visa det som är äldre än 12 dagar helt enkelt.
Bokningsdatum är DATETIME.

Medlem sedan jan. 20032 285 inlägg
#6

I MySQL tror jag att man kan göra såhär:

SQL = "select count(*) as antal from table where A='2' AND B='1' AND Bokningsdatum < dateadd(days,-12,getdate())"

Ungefär. Har aldrig använt MySQL, så det kan finnas syntaxfel, men man kan ju testa. :)

Medlem sedan nov. 2001348 inlägg
#7

Nope...
GetDate.. finns det i ASP/mySQL?

Medlem sedan jan. 20032 285 inlägg
#8

getdate tror jag är en MySQL funktion. Men testa detta då?

SQL = "select count(*) as antal from table where A='2' AND B='1' AND Bokningsdatum < '" & DateAdd("d",-12,Now()) & "'"
Medlem sedan nov. 2001348 inlägg
#9

Funkar najs.. hoppas jag ;) Tack!

Medlem sedan juni 200032 967 inlägg
#10

GetDate() är en funktion i T-SQL (SQL Server alltså). I MySQL använder man current_timestamp för motsvarande. Jag vill minnas att det är current_timestamp som är standard.

Mvh,

Medlem sedan dec. 200012 464 inlägg
#11

[knappologi]
current_timestamp är standard och finns i både Tsql och Mysql. Tyvärr så har både implementerat den felaktigt då current_timestamp även skall innehålla ett <time zone displacement>-värde enligt standard.
Dom borde ha döpt funktionen till localtimestamp för att det skulle fungera enligt standard då den funktionen inte inbegriper ett <time zone displacement>-värde.
[/knappologi]

Medlem sedan juni 200032 967 inlägg
#12

Tack LarsG, du källa av evig kunskap! :D

Medlem sedan jan. 20032 285 inlägg
#13

Jag vill också tacka dig, LarsG, du kunnige SQL-gud! :e

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)