Cita:
Iniciado por iislas Horizonte
Esta consulta
select cast('2000-08-28 23:59:59' as smalldatetime)as Fecha
Da como resultado:
Fecha
------------------------------------------------------
2000-08-29 00:00:00
(1 row(s) affected)
Que conste, es un simple COPY-PASTE
Las fechas NUNCA se comparan con IGUAL (=), debe ser con >= o <=
A menos claro, que hagas un convert:
WHERE CONVERT(CHAR(8), GETDATE(), 112) = '20070828'
Iislas:
Ok, a mi me da lo mismo si lo ejecuto en el SQL.Server version ingles, pero si lo ejecutas desde el SQL.Server
version castellano veras que te da el error antes mencionado.
Igualmente gracias por la ayuda porque descubri que si uso '
AAAAMMDD' en vez de '
AAAA-MM-DD' funciona en ambos idiomas.
Es decir, lo que antes daba error en el SQL(castellano) ahora funciona ok(la hora es opcional) asi:
Código:
select cast('20070828 23:59:59'as smalldatetime)as Fecha
Podria entonces concluir, que talvez el ANSI se refiere a '
AAAAMMDD' y no a '
AAAA-MM-DD'. Esto se basa en el query mencionado arriba, es decir si usan '
AAAA-MM-DD' funcionara ok para el
SQL ver.Ingles, pero veran que les dara error en el
SQL ver.Castellano, y viceversa si usan '
AAAA-DD-MM' funciona ok para
SQL ver.Castellano y da error en
SQL ver.Ingles. Pero si usamos el mismo query con '
AAAAMMDD' veran que funciona para ambos idiomas.
Desde ya muchas gracias a todos.
Saludos.