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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Jorge Bustos
18/02/2005 - 15:08 | Informe spam
Te recomiendo que utilices el formato ISO:
aaaa-mm-dd

Este formato en principio es universal tanto en lo que se refiere a idiomas
como en lo que se refiere a servidores (es decir, no sólo funciona en SQL
Server, sino también en otros).

Es decir, tu consulta debería acabar así:
and turnos.tur_fecha = '2005-02-18'


Espero que te resuleva el problema


"Oswaldo" escribió en el mensaje
news:
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


Respuesta Responder a este mensaje
#3 ulises
18/02/2005 - 15:35 | Informe spam
Cuando envias la fecha como una cadena al motor de SQL, la forma como
lo trata de interpretar dependerá del idioma del inicio de sesión con
el cual te has conectado, no del idioma predeterimnado del servidor
sql ni del formato de fecha del servidor windows. Si no deseas tener
problemas usa el formato ANSI

... and turnos.tur_fecha = '20050218'


Saludos,
Ulises


On Fri, 18 Feb 2005 08:53:12 -0500, "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

Respuesta Responder a este mensaje
#4 Maxi
18/02/2005 - 17:09 | Informe spam
Hola, te envio un articulo donde se explica el funcionamiento de las fechas
y como solucionarlo

http://www.microsoft.com/spanish/ms...art157.asp


Salu2
Maxi


"Oswaldo" escribió en el mensaje
news:
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


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida