formato fechas

07/11/2005 - 19:17 por josepe | Informe spam
Saludos,

Tengo un site web con una base de datos SQL server, esta base de datos tiene
campos tipo datetime en formato US_English: mm/dd/yyyy hh:mm:ss
La web ASP se hizo con Interdev utilizando todos los objetos y funciones que
crea Interdev para conectar con la base de datos.

Todo funcionava ok en mi servidor antiguo de USA, ahora he cambiado a un
servidor en United Kingdom, y todos estos objetos y funciones de Interdev
devuelven ahora las fechas en formato europeo: "dd/mm/yyyy".

He revisado los settings del sistema y los de SQL y parece todo ok:
- Regional settings OS estan a USA
- Idioma del usuario de conexión a SQL es English.

De hecho si hago una página ASP sin utilizar Interdev, creando los OBJETOS,
Connection y Recordset, devuelve el formato correcto del sistema.

Algo passa con los objetos que crea Interdev, o debo cambiar algun parámetro
interno del sistema o SQL server para que por defecto utilize el formato
"mm/dd/yy"

No puedo cambiar el código de la web, debo cambiar solo la configuración de
SQL o del sistema.

Alguna idea?

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
07/11/2005 - 19:57 | Informe spam
josepe,

Por parte de sql server, los valores tipo datetime son almacenados en dos
enteros de 4 bytes, el primero para los dias antes o despues de la fecha de
referencia (Enero 01 1900) y el segundo para guardar el tiempo del dia,
almacenandose los milisegundos despues de laq media noche. Sql Server no
guarda la fecha en ningun formato, sino que de acuerdo a ciertos settings
este interpreta los valores de fecha de acuerdo a un formato dado por el
valor del lenguaje que se escojio al instalar sql server o al formato en
tiempo de ejecucion que se da con "set dateformat".

Para evitar este tipo de problemas, siempre se debe usar un formato estandar
que sql server puede interpretar como fecha independiente del lenguaje y / o
seteo de dateformat. Este formato es el formato ISO (ve la funcion "convert"
en los libros en linea con los estilos 112 y 126).

Ejemplo:

set dateformat mdy
go

select cast('20051107' as datetime)
go

set dateformat dmy
go

select cast('20051107' as datetime)
go

select cast('01/31/2005' as datetime)


AMB

"josepe" wrote:

Saludos,

Tengo un site web con una base de datos SQL server, esta base de datos tiene
campos tipo datetime en formato US_English: mm/dd/yyyy hh:mm:ss
La web ASP se hizo con Interdev utilizando todos los objetos y funciones que
crea Interdev para conectar con la base de datos.

Todo funcionava ok en mi servidor antiguo de USA, ahora he cambiado a un
servidor en United Kingdom, y todos estos objetos y funciones de Interdev
devuelven ahora las fechas en formato europeo: "dd/mm/yyyy".

He revisado los settings del sistema y los de SQL y parece todo ok:
- Regional settings OS estan a USA
- Idioma del usuario de conexión a SQL es English.

De hecho si hago una página ASP sin utilizar Interdev, creando los OBJETOS,
Connection y Recordset, devuelve el formato correcto del sistema.

Algo passa con los objetos que crea Interdev, o debo cambiar algun parámetro
interno del sistema o SQL server para que por defecto utilize el formato
"mm/dd/yy"

No puedo cambiar el código de la web, debo cambiar solo la configuración de
SQL o del sistema.

Alguna idea?

Muchas gracias.



Respuesta Responder a este mensaje
#2 Maxi
07/11/2005 - 21:44 | Informe spam
http://www.microsoft.com/spanish/ms...art157.asp


Salu2
Maxi [MVP SQL SERVER]


"josepe" escribió en el mensaje
news:
Saludos,

Tengo un site web con una base de datos SQL server, esta base de datos
tiene campos tipo datetime en formato US_English: mm/dd/yyyy hh:mm:ss
La web ASP se hizo con Interdev utilizando todos los objetos y funciones
que crea Interdev para conectar con la base de datos.

Todo funcionava ok en mi servidor antiguo de USA, ahora he cambiado a un
servidor en United Kingdom, y todos estos objetos y funciones de Interdev
devuelven ahora las fechas en formato europeo: "dd/mm/yyyy".

He revisado los settings del sistema y los de SQL y parece todo ok:
- Regional settings OS estan a USA
- Idioma del usuario de conexión a SQL es English.

De hecho si hago una página ASP sin utilizar Interdev, creando los
OBJETOS, Connection y Recordset, devuelve el formato correcto del sistema.

Algo passa con los objetos que crea Interdev, o debo cambiar algun
parámetro interno del sistema o SQL server para que por defecto utilize el
formato "mm/dd/yy"

No puedo cambiar el código de la web, debo cambiar solo la configuración
de SQL o del sistema.

Alguna idea?

Muchas gracias.

Respuesta Responder a este mensaje
#3 Eladio Rincón
07/11/2005 - 23:30 | Informe spam
Hola Josepe,

Aquí también tienes algo:
http://siquelnet.etraducciones.com/...p;Articulo3.xml
http://siquelnet.etraducciones.com/...p;Articulo4.xml

Saludos,

Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"


"josepe" wrote in message
news:
Saludos,

Tengo un site web con una base de datos SQL server, esta base de datos
tiene campos tipo datetime en formato US_English: mm/dd/yyyy hh:mm:ss
La web ASP se hizo con Interdev utilizando todos los objetos y funciones
que crea Interdev para conectar con la base de datos.

Todo funcionava ok en mi servidor antiguo de USA, ahora he cambiado a un
servidor en United Kingdom, y todos estos objetos y funciones de Interdev
devuelven ahora las fechas en formato europeo: "dd/mm/yyyy".

He revisado los settings del sistema y los de SQL y parece todo ok:
- Regional settings OS estan a USA
- Idioma del usuario de conexión a SQL es English.

De hecho si hago una página ASP sin utilizar Interdev, creando los
OBJETOS, Connection y Recordset, devuelve el formato correcto del sistema.

Algo passa con los objetos que crea Interdev, o debo cambiar algun
parámetro interno del sistema o SQL server para que por defecto utilize el
formato "mm/dd/yy"

No puedo cambiar el código de la web, debo cambiar solo la configuración
de SQL o del sistema.

Alguna idea?

Muchas gracias.

Respuesta Responder a este mensaje
#4 josepe
08/11/2005 - 10:56 | Informe spam
OK.

Me interesa mucho la parte en que comentas:
"Sql Server no guarda la fecha en ningun formato, sino que de acuerdo a
ciertos settings
este interpreta los valores de fecha de acuerdo a un formato dado por el
valor del lenguaje que se escojio al instalar sql server o al formato en
tiempo de ejecucion que se da con "set dateformat".

Dado que no puedo modificar el código y parece que lo settings que hago del
sistema y SQL server no hacen efecto.

Puedo cambiar de alguna manera el valor de lenguaje que se escojio al
instalar sql server?
Aunque sea modificando el registro.

Alguna idea?

Muchas gracias por la información.






"Alejandro Mesa" escribió en el
mensaje news:
josepe,

Por parte de sql server, los valores tipo datetime son almacenados en dos
enteros de 4 bytes, el primero para los dias antes o despues de la fecha
de
referencia (Enero 01 1900) y el segundo para guardar el tiempo del dia,
almacenandose los milisegundos despues de laq media noche. Sql Server no
guarda la fecha en ningun formato, sino que de acuerdo a ciertos settings
este interpreta los valores de fecha de acuerdo a un formato dado por el
valor del lenguaje que se escojio al instalar sql server o al formato en
tiempo de ejecucion que se da con "set dateformat".

Para evitar este tipo de problemas, siempre se debe usar un formato
estandar
que sql server puede interpretar como fecha independiente del lenguaje y /
o
seteo de dateformat. Este formato es el formato ISO (ve la funcion
"convert"
en los libros en linea con los estilos 112 y 126).

Ejemplo:

set dateformat mdy
go

select cast('20051107' as datetime)
go

set dateformat dmy
go

select cast('20051107' as datetime)
go

select cast('01/31/2005' as datetime)


AMB

"josepe" wrote:

Saludos,

Tengo un site web con una base de datos SQL server, esta base de datos
tiene
campos tipo datetime en formato US_English: mm/dd/yyyy hh:mm:ss
La web ASP se hizo con Interdev utilizando todos los objetos y funciones
que
crea Interdev para conectar con la base de datos.

Todo funcionava ok en mi servidor antiguo de USA, ahora he cambiado a un
servidor en United Kingdom, y todos estos objetos y funciones de Interdev
devuelven ahora las fechas en formato europeo: "dd/mm/yyyy".

He revisado los settings del sistema y los de SQL y parece todo ok:
- Regional settings OS estan a USA
- Idioma del usuario de conexión a SQL es English.

De hecho si hago una página ASP sin utilizar Interdev, creando los
OBJETOS,
Connection y Recordset, devuelve el formato correcto del sistema.

Algo passa con los objetos que crea Interdev, o debo cambiar algun
parámetro
interno del sistema o SQL server para que por defecto utilize el formato
"mm/dd/yy"

No puedo cambiar el código de la web, debo cambiar solo la configuración
de
SQL o del sistema.

Alguna idea?

Muchas gracias.



Respuesta Responder a este mensaje
#5 Guido Catalano
08/11/2005 - 15:14 | Informe spam
¿tienes el proyecto fuente de interdev?
Si es así, en las propiedades de la conexión puedes cambiar el idioma. Y si
no tienes el proyecto... ¿has probado de crear (con interdev) conexiones con
distintos idiomas para ver si se modifica el formato de fecha mostrado?
Tal vez puedas cambiar la configuración de la conexión q se guarda en el
global.asa

Guido.-
Off-record: Entren a mi sitio, q me voy a morir de la depresión por las
escasas visitas q tiene :(
www.fotoxl.com.ar


"josepe" escribió en el mensaje
news:
OK.

Me interesa mucho la parte en que comentas:
"Sql Server no guarda la fecha en ningun formato, sino que de acuerdo a
ciertos settings
este interpreta los valores de fecha de acuerdo a un formato dado por el
valor del lenguaje que se escojio al instalar sql server o al formato en
tiempo de ejecucion que se da con "set dateformat".

Dado que no puedo modificar el código y parece que lo settings que hago


del
sistema y SQL server no hacen efecto.

Puedo cambiar de alguna manera el valor de lenguaje que se escojio al
instalar sql server?
Aunque sea modificando el registro.

Alguna idea?

Muchas gracias por la información.






"Alejandro Mesa" escribió en el
mensaje news:
> josepe,
>
> Por parte de sql server, los valores tipo datetime son almacenados en


dos
> enteros de 4 bytes, el primero para los dias antes o despues de la fecha
> de
> referencia (Enero 01 1900) y el segundo para guardar el tiempo del dia,
> almacenandose los milisegundos despues de laq media noche. Sql Server no
> guarda la fecha en ningun formato, sino que de acuerdo a ciertos


settings
> este interpreta los valores de fecha de acuerdo a un formato dado por el
> valor del lenguaje que se escojio al instalar sql server o al formato en
> tiempo de ejecucion que se da con "set dateformat".
>
> Para evitar este tipo de problemas, siempre se debe usar un formato
> estandar
> que sql server puede interpretar como fecha independiente del lenguaje y


/
> o
> seteo de dateformat. Este formato es el formato ISO (ve la funcion
> "convert"
> en los libros en linea con los estilos 112 y 126).
>
> Ejemplo:
>
> set dateformat mdy
> go
>
> select cast('20051107' as datetime)
> go
>
> set dateformat dmy
> go
>
> select cast('20051107' as datetime)
> go
>
> select cast('01/31/2005' as datetime)
>
>
> AMB
>
> "josepe" wrote:
>
>> Saludos,
>>
>> Tengo un site web con una base de datos SQL server, esta base de datos
>> tiene
>> campos tipo datetime en formato US_English: mm/dd/yyyy hh:mm:ss
>> La web ASP se hizo con Interdev utilizando todos los objetos y


funciones
>> que
>> crea Interdev para conectar con la base de datos.
>>
>> Todo funcionava ok en mi servidor antiguo de USA, ahora he cambiado a


un
>> servidor en United Kingdom, y todos estos objetos y funciones de


Interdev
>> devuelven ahora las fechas en formato europeo: "dd/mm/yyyy".
>>
>> He revisado los settings del sistema y los de SQL y parece todo ok:
>> - Regional settings OS estan a USA
>> - Idioma del usuario de conexión a SQL es English.
>>
>> De hecho si hago una página ASP sin utilizar Interdev, creando los
>> OBJETOS,
>> Connection y Recordset, devuelve el formato correcto del sistema.
>>
>> Algo passa con los objetos que crea Interdev, o debo cambiar algun
>> parámetro
>> interno del sistema o SQL server para que por defecto utilize el


formato
>> "mm/dd/yy"
>>
>> No puedo cambiar el código de la web, debo cambiar solo la


configuración
>> de
>> SQL o del sistema.
>>
>> Alguna idea?
>>
>> Muchas gracias.
>>
>>
>>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida