Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > SQL Server

Respuesta
 
Herramientas Desplegado
Antiguo 06-jul-2007, 17:56   #1 (permalink)
Tarecito ha deshabilitado el karma
 
Avatar de Tarecito
 
Fecha de Ingreso: noviembre-2003
Mensajes: 430
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
Tarecito está desconectado   Responder Citando
Antiguo 08-jul-2007, 08:11   #2 (permalink)
BarOdy no se puede cailificar en este momento
 
Fecha de Ingreso: julio-2007
Ubicación: Trujillo - Perú
Mensajes: 3
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,
BarOdy está desconectado   Responder Citando
Antiguo 08-jul-2007, 12:53   #3 (permalink)
Tarecito ha deshabilitado el karma
 
Avatar de Tarecito
 
Fecha de Ingreso: noviembre-2003
Mensajes: 430
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
Tarecito está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 22:39.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93