Formato de fechas en SQL Server

18/02/2005 - 14:53 por Oswaldo | Informe spam
Hola a todos,

Tengo un grave problema con una aplicación a la cual empece a dar
mantenimiento hace poco.
Tengo una BD en SQL Server 2000, el idioma predeterminado es "español", por
lo tanto el formato de fechas es "mdy"
En el servidor el formato de fecha de windows (Win Server 2000" es
"aaaa/mm/dd"
En las estaciones de trabajo (WinXP SP2) el formato de fecha de windows es
"aaaa/mm/dd"

Problema:
Cuando realizo una consulta que involucre fechas como condición me retorna
el siguiente error:
[Microsoft][ODBC SQL Server Driver][SQL Server]La conversión del tipo de
datos char a datetime produjo un valor datetime fuera de intervalo.

La consulta es:
SELECT empleado.emp_ape,empleado.emp_nom, empleado.grgrup_cod,
empleado.subpri_cod,empleado.subg_cod,empleado.grupri_cod,tur_fecha,hora_des,razon_des
FROM empleado,turnos,horas,razon_turno WHERE empleado.emp_ced =
turnos.tur_cedula and turnos.hora_cod = horas.hora_cod and
turnos.razon_cod = razon_turno.razon_cod and empleado.emp_ced =
'1711050862' and empleado.emp_estado = 'A' and turnos.tur_fecha =
'2005/02/18'

donde el campo turnos.tur_fecha es de tipo datetime
he probado pasando la fecha en formato "mm/dd/yyyy" y no pasa nada
he puesto el "SET DATEFORMAT" a "ymd" y a veces funciona otras no funciona.

Ya estoy cabezón con este asunto, por favor si alguien me puede ayudar a
solucionar esto.

De antemano mil gracias.

Att.
Oswaldo
 

Leer las respuestas

#1 Alejandro Mesa
18/02/2005 - 15:03 | Informe spam
Oswaldo,

Si usas el formato "yyyy-mm-ddThh:mm:ss.mmm" o "yyyymmdd" (Ve la function
CONVERT en los libros en linea (style 126 o 112)), entonces sql server
interpretara la correctamente la fecha independientemente del lenguaje o
formato de fecha en uso.

...
and turnos.tur_fecha = '20050218'
...


AMB

"Oswaldo" wrote:

Hola a todos,

Tengo un grave problema con una aplicación a la cual empece a dar
mantenimiento hace poco.
Tengo una BD en SQL Server 2000, el idioma predeterminado es "español", por
lo tanto el formato de fechas es "mdy"
En el servidor el formato de fecha de windows (Win Server 2000" es
"aaaa/mm/dd"
En las estaciones de trabajo (WinXP SP2) el formato de fecha de windows es
"aaaa/mm/dd"

Problema:
Cuando realizo una consulta que involucre fechas como condición me retorna
el siguiente error:
[Microsoft][ODBC SQL Server Driver][SQL Server]La conversión del tipo de
datos char a datetime produjo un valor datetime fuera de intervalo.

La consulta es:
SELECT empleado.emp_ape,empleado.emp_nom, empleado.grgrup_cod,
empleado.subpri_cod,empleado.subg_cod,empleado.grupri_cod,tur_fecha,hora_des,razon_des
FROM empleado,turnos,horas,razon_turno WHERE empleado.emp_ced =
turnos.tur_cedula and turnos.hora_cod = horas.hora_cod and
turnos.razon_cod = razon_turno.razon_cod and empleado.emp_ced =
'1711050862' and empleado.emp_estado = 'A' and turnos.tur_fecha =
'2005/02/18'

donde el campo turnos.tur_fecha es de tipo datetime
he probado pasando la fecha en formato "mm/dd/yyyy" y no pasa nada
he puesto el "SET DATEFORMAT" a "ymd" y a veces funciona otras no funciona.

Ya estoy cabezón con este asunto, por favor si alguien me puede ayudar a
solucionar esto.

De antemano mil gracias.

Att.
Oswaldo



Preguntas similares