Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   SQL Server (http://www.forosdelweb.com/f87/)
-   -   fechas en sql - ingles vs español (http://www.forosdelweb.com/f87/fechas-sql-ingles-vs-espanol-503533/)

Tarecito 06/07/2007 17:56

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.

BarOdy 08/07/2007 08:11

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,

Tarecito 08/07/2007 12:53

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.


La zona horaria es GMT -6. Ahora son las 20:08.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.