[SQL] Datum vergelijking doet raar (denk ik)

Pagina: 1
Acties:

  • shades
  • Registratie: September 2001
  • Laatst online: 10-08 15:01
In een tabel (dbo.tbl_Meldingen.MeldingsDatum) heb ik een kolom met een datum (complete tabel):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
MeldingsDatum (veldnaam)
28-06-2002 9:56:00
28-06-2002 9:56:00
28-06-2002 9:56:00
28-06-2002 9:56:00
28-06-2002 10:04:00
29-06-2002 21:47:00
02-06-2002 11:09:00
11-07-2002 12:24:00
11-07-2002 12:25:00
15-07-2002 14:51:00
19-07-2002 10:50:00
19-07-2002 10:53:00
19-07-2002 10:55:00
22-07-2002 11:41:00

Nu wil ik alles vanaf via WHERE aangeven dat ik alles wil zien tot en met 19 juli (19-07)
Hier heb WHERE clause:
code:
1
WHERE (CONVERT(char(10), dbo.tbl_Meldingen.MeldingsDatum, 105) <= '19-07-2002')

Resultaat:
code:
1
2
3
4
5
6
7
8
MeldingsDatum
02-06-2002 11:09:00
11-07-2002 12:24:00
11-07-2002 12:25:00
15-07-2002 14:51:00
19-07-2002 10:50:00
19-07-2002 10:53:00
19-07-2002 10:55:00

:? Snap ik niet
Als ik bv alles tot en met 19-06-2002 wil zien ( <= '19-06-2002' ) dan is het resultaat:
code:
1
2
3
4
5
MeldingsDatum
02-06-2002 11:09:00
11-07-2002 12:24:00
11-07-2002 12:25:00
15-07-2002 14:51:00

Kan iemand mij vertellen wat ik niet goed doe ?
Ik heb Session.LCID = 1043 ingesteld.

https://k1600gt.nl


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

je zit chars te vergelijken.
Dat gaat van links naar rechts.

Who is John Galt?


  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 12:53
Is dit SQL Server ?

Je bent nu een character-vergelijking aan het doen ipv een date-vergelijking.
In een char vergelijking is '28-06' > '19-07'

dus je moet de rechterkant converteren naar date ipv de linkerkant naar char.

  • shades
  • Registratie: September 2001
  • Laatst online: 10-08 15:01
Ja, dit is sql 2000 server
Ah, ik ben dus strings aan het vergelijken. Hoe kan ik dit oplossen ? Ben nog niet zo heel erg thuis (lees:niet) met transact sql. Ik moet ze dus allebei in een jjjj-mm-dd vorm gieten.
Via asp kan ik het wel makkelijk oplossen om 11-06-2002 naar 2002-06-11 te converteren maar hoe ik dat in sql zou moeten doen, geen flauw idee. (heb er ook nog niet naar gezocht moet ik eerlijk zeggen)

https://k1600gt.nl


Verwijderd

code:
1
WHERE (CONVERT(int, dbo.tbl_Meldingen.MeldingsDatum, 112) &lt;= 20020719)

112 = ISO-formaat, yyyymmdd

  • shades
  • Registratie: September 2001
  • Laatst online: 10-08 15:01
Op maandag 22 juli 2002 14:44 schreef Wrah het volgende:
code:
1
WHERE (CONVERT(int, dbo.tbl_Meldingen.MeldingsDatum, 112) &lt;= 20020719)

112 = ISO-formaat, yyyymmdd
Ik heb net dit zitten proberen adv de CAST en CONVERT help van de sql books online:
code:
1
 (CONVERT(char(10), MeldingsDatum, 126) &lt;= CONVERT(CHAR(10), '2002-07-11', 126))

Das ook een iso mode met een melding erbij dat het design is voor xml use, niet dat ik dat gebruik ofzo maar misschien voor de toekomst.

Zou er nog een voorkeur zijn ?

https://k1600gt.nl

Pagina: 1