Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

fechas en sql - ingles vs español

Estas en el tema de fechas en sql - ingles vs español en el foro de SQL Server en Foros del Web. Hola a todos, tengo algunos problemitas con las fechas, resulta q en el trabajo uso sql 2000 en español, pero en casa tengo el sql ...
  #1 (permalink)  
Antiguo 06/07/2007, 17:56
Avatar de Tarecito  
Fecha de Ingreso: noviembre-2003
Ubicación: Lima - Perú
Mensajes: 443
Antigüedad: 20 años, 5 meses
Puntos: 1
Pregunta fechas en sql - ingles vs español

Hola a todos, tengo algunos problemitas con las fechas, resulta q en el trabajo uso sql 2000 en español, pero en casa tengo el sql 2000 en inglés, y cuando quiero avanzar en casa el trabajo me sale un error en el formato de la fecha. Existe alguna forma de corregir esto o tengo necesariamente q intalarme la version en español en casa? Muchas gracias de antemano.
__________________
Tarecito
  #2 (permalink)  
Antiguo 08/07/2007, 08:11
 
Fecha de Ingreso: julio-2007
Ubicación: Trujillo - Perú
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: fechas en sql - ingles vs español

Hola:

Bueno con respecto a tu pregunta el problema se debe al idioma con el que has instalado tu motor de base de datos, pero para corregir esto si no quieres desinstalar tu SQL Server en inglés, puedes utilizar algunas de las siguientes opciones:

- Primero utilizar el estándar ISO para las fechas yyyymmdd [hh:mm](la hora es opcional), de esta forma al asignarle un valor con este formato a un campo datetime o smalldatetime no deberías de tener problemas.

Por ejemplo:

-- Creamos un procedimiento almacenado de prueba...
CREATE PROC usp_MostrarFecha
@Fecha smalldatetime
AS
SELECT @Fecha
GO

-- Ejecutamos las siguientes sentencias:
EXEC usp_MostrarFecha '28/07/2007'
GO
EXEC usp_MostrarFecha '07/28/2007'
GO
EXEC usp_MostrarFecha '20070728'
GO

-- Los resultados :
Mens 8114, Nivel 16, Estado 1, Procedimiento usp_MostrarFecha, Línea 0
Error converting data type varchar to smalldatetime.

-----------------------
2007-07-28 00:00:00 -> Formato para el idioma ingles mmddyyyy

-----------------------
2007-07-28 00:00:00 -> Con el formato iso para fechas funciona.


- Otra alternativa es que borres y vuelvas a crear tu procedimiento pero antes establescas algunas de estas opciones:

SET LANGUAGE SPANISH o SET DATEFORMAT DMY

Por ejemplo:
DROP PROC usp_MostrarFecha
GO
SET LANGUAGE SPANISH
GO
-- SET DATEFORMAT DMY
-- GO

CREATE PROC usp_MostrarFecha
@Fecha smalldatetime
AS
SELECT @Fecha
GO


Son algunas de las soluciones que hice, pues se me presento el mismo caso en el trabajo. Te recomiendo la primera solución, pero si tienes una aplicación ya desarrollada y tienes un servidor en Inglés, me parece que no queda otro remedio que volver a crear los procedimientos con algunas de las configuraciones SET LANGUAGE o SET DATEFORMAT ya establecidas.

Recibe un cordial saludo, espero que pueda ayudarte.

Saludos,
  #3 (permalink)  
Antiguo 08/07/2007, 12:53
Avatar de Tarecito  
Fecha de Ingreso: noviembre-2003
Ubicación: Lima - Perú
Mensajes: 443
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: fechas en sql - ingles vs español

Muchas gracias BarOdy, me ha servido mucho tu ayuda, usé la primera opción ya que recién empezaba a crear la aplicación.
__________________
Tarecito
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:06.