[ASP] Datum SQL groter dan probleem

Pagina: 1
Acties:
  • 826 views sinds 30-01-2008
  • Reageer

  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 20-04 14:47
Ik gebruik de volgende SQL in een MSSQL database:

code:
1
2
3
4
5
DatumVandaag = Date
    
Set rsBelscript = Server.CreateObject("ADODB.Recordset")    
rsBelscript.Open "Select * From Order Where TelefonerenVanaf >=
 ' & DatumVandaag & '


In de database staat de datum als datetime veld als volgt ingevuld: mm/dd/jjjj

Als ik een response.write doe van de huidige datum, dan staat deze als: dd-mm-jjjj. Nederlandse notatie dus.

Nu kan ik wel de variabele DatumVandaag als volgt weergeven:

code:
1
DatumVandaag = Month(Date) & "/" & Day(Date) & "/" & Year(Date)


Maar dan krijg ik weer de volgende foutmelding:

Syntax error converting datetime from character string.

Hoe kan ik dit oplossen, heb overal gezocht maar kom er niet uit.

Met Access heb ik gewoon een functie gemaakt die de datum goed zet, maar dat werkt hier dus niet.

[ Voor 6% gewijzigd door Dutch_guy op 28-10-2004 17:06 ]

Pay peanuts get monkeys !


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:27

gorgi_19

Kruimeltjes zijn weer op :9

SQL:
1
Select * From Order Where TelefonerenVanaf >= now()

werkt dit niet?

imho is ASP er helemaal niet voor nodig :)

[ Voor 21% gewijzigd door gorgi_19 op 28-10-2004 21:16 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Probeer anders eens yyyy-mm-dd notatie voor de vergelijking, ik heb daar bij MSSQL nog nooit problemen meet gehad.

  • wizzkizz
  • Registratie: April 2003
  • Laatst online: 19-12-2025

wizzkizz

smile...tomorrow will be worse

als dat met now() niet werkt, en het werkt ook niet met date()...

...dan anders zet je de session.lcid toch even op 1033 (d8 ik, kan nummertje verkeerd hebben) ...

en probeer je het vervolgens weer met date() of now()
:)

Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.


Verwijderd

gorgi_19 schreef op 28 oktober 2004 @ 21:16:
SQL:
1
Select * From Order Where TelefonerenVanaf >= now()

werkt dit niet?
Nee, omdat hiermee ook de tijd wordt meegenomen.
Dutch_guy schreef op 28 oktober 2004 @ 17:03:
Hoe kan ik dit oplossen, heb overal gezocht maar kom er niet uit.
ISO 8601
wizzkizz schreef op 28 oktober 2004 @ 21:41:
...dan anders zet je de session.lcid toch even op 1033 (d8 ik, kan nummertje verkeerd hebben) ...
Volgens mij is het 1043.

[ Voor 20% gewijzigd door Verwijderd op 28-10-2004 21:55 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:27

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 28 oktober 2004 @ 21:54:
[...]

Nee, omdat hiermee ook de tijd wordt meegenomen.
Wat is daar erg aan? Als je geen tijd opgeeft in de database, wordt veronderstelt dat deze 0:00 uur is, dus ga je geen problemen mee krijgen :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

In bovenstaand voorbeeld neem je in de query de huidige dag niet mee.
gorgi_19 schreef op 28 oktober 2004 @ 21:56:
Als je geen tijd opgeeft in de database, wordt veronderstelt dat deze 0:00 uur is, dus ga je geen problemen mee krijgen :)
Maar dan zou je de query aan moeten passen met "Now()-1" ofzo.

Verwijderd

SQL:
1
Select * From Order Where TelefonerenVanaf >= now()
Is het niet
SQL:
1
Select * From Order Where TelefonerenVanaf >= getdate()


of
SQL:
1
Select * From Order Where datediff(d,getdate(),TelefonerenVanaf)>0

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:27

gorgi_19

Kruimeltjes zijn weer op :9

afaik kent MS Access geen GetDate en is dat iets van SQL Server :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

gorgi_19 schreef op 29 oktober 2004 @ 00:09:
afaik kent MS Access geen GetDate en is dat iets van SQL Server :)
De TS' vraag is ook over MSSQLserver, niet over access.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:27

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 29 oktober 2004 @ 00:17:
[...]

De TS' vraag is ook over MSSQLserver, niet over access.
hmmm.. over dat stukje heen gelezen;
Met Access heb ik gewoon een functie gemaakt die de datum goed zet, maar dat werkt hier dus niet.
is me bijgebleven. Dan idd GetDate gebruiken.

[ Voor 4% gewijzigd door gorgi_19 op 29-10-2004 00:19 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Gebruik een parametrized query, en al je datum-formatting nachtmerries verdwijnen als sneeuw voor de zon! SQL Server zorgt er dan zelf voor dat de datum op de juiste manier gematched wordt.

Kijk voor parametrized queries ook hier

[ Voor 7% gewijzigd door OZ-Gump op 29-10-2004 09:37 ]

My personal website


Verwijderd

Parametrized query's zijn inderdaad handig, maar als je het door sql-server zelf laat oplossen (in dit geval met getdate()) heb je helemaal geen parameters nodig. Je kunt dan zelfs de query's voordefinieren in een view.

  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 20-04 14:47
Thanks iedereen. GetDate() is de oplossing.

Ik had er nog nooit van gehoord, maar het werkt perfect.

Pay peanuts get monkeys !


Verwijderd

Heb je met of zonder datediff gedaan want getdate() geeft een datum+tijd terug. Als je veld alleen de datum bevat wordt dat gezien als middernacht en dan krijg je het probleem dat 29-okt-2004 00:00 niet groter gelijk is dan 29-okt-2004 23:33. Met datediff kun je dit probleem ondervangen.
Pagina: 1