problemas con fechas

07/11/2005 - 12:26 por josepe | Informe spam
Saludos,

Tengo un SQL server para mi site web. Antes tenia la web en un servidor de
USA y
todas las fechas de mi base de datos estan guardadas en formato: mm/dd/yy
y todo mi código està adaptado para este formato.

Ahora he trasladado mi site web a un servidor de Londres y ahora tengo un
problema
con las fechas ya que en la base de datos sigue estando en formato mm/dd/yy,
pero
cuando hago una consulta al mostrar la fecha por pantalla me cambia el
formato a:
dd/mm/yy, esto me supone un problema ya que mi código està preparado para
transformar la fecha.

He configurado el servidor para Regional settings para que utilice todo como
USA, pero no se que tengo que configurar en SQL server.

Hay algun setting general en SQL para especificar el formato de la fecha? Me
gustaria no tener que tocar el código de la web, algun setting a cambiar en
SQL Manager?

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Maxi
07/11/2005 - 12:46 | Informe spam
Hola, leete este articulo:

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


Salu2
Maxi [MVP SQL SERVER]


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

Tengo un SQL server para mi site web. Antes tenia la web en un servidor de
USA y
todas las fechas de mi base de datos estan guardadas en formato: mm/dd/yy
y todo mi código està adaptado para este formato.

Ahora he trasladado mi site web a un servidor de Londres y ahora tengo un
problema
con las fechas ya que en la base de datos sigue estando en formato
mm/dd/yy, pero
cuando hago una consulta al mostrar la fecha por pantalla me cambia el
formato a:
dd/mm/yy, esto me supone un problema ya que mi código està preparado para
transformar la fecha.

He configurado el servidor para Regional settings para que utilice todo
como USA, pero no se que tengo que configurar en SQL server.

Hay algun setting general en SQL para especificar el formato de la fecha?
Me gustaria no tener que tocar el código de la web, algun setting a
cambiar en SQL Manager?

Muchas gracias.



Respuesta Responder a este mensaje
#2 josepe
07/11/2005 - 14:24 | Informe spam
Ok lei el documento, gracias.

Pero no tengo una relación directa para solucionar por ahora mi problema con
el documento.

Mi base de datos esta en ingles, mi usuario de conexion está en ingles, no
tendria que haber problemas para mostrar las fechas en formato ingles, no?

De hecho solo una parte del código me da el formato de fechas cambiado

Te pongo el código haber si puedes saber algun setting que cambie este dato
o algun:
////////////////////////////////////////////
var DBConn = Server.CreateObject('ADODB.Connection');
InitConnection(DBConn);
var cmdTmp = Server.CreateObject('ADODB.Command');
var rsTmp = Server.CreateObject('ADODB.Recordset');
cmdTmp.ActiveConnection = DBConn;
rsTmp.Source = cmdTmp;
cmdTmp.CommandType = 1;
cmdTmp.CommandTimeout = 10;
cmdTmp.CommandText = 'Select UserFirstName, UserLastName, Items.*,
OrderDetails.*, OrderMaster.* From Customers, Items, OrderDetails ,
OrderMaster Where ItemID=OrderProductID And
OrderMaster.OrderNo=OrderDetails.OrderNo And OrderMaster.UserEMail =
Customers.UserEMail And OrderDetails.OrderNo=' + Request("id");
rsTmp.CacheSize = 10;
rsTmp.CursorType = 3;
rsTmp.CursorLocation = 3;
rsTmp.LockType = 1;
rsProducts.setRecordSource(rsTmp);
rsProducts.open();
//////////////////////////////////////////


Perdón por hacerte trabajar tanto.
Estoy buscando la solución, pero es que es un problema muy grave y por
ahora necessito solucionarlo aunque no sea la mejor solución...

Muchas gracias.



"Maxi" escribió en el mensaje
news:%
Hola, leete este articulo:

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


Salu2
Maxi [MVP SQL SERVER]


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

Tengo un SQL server para mi site web. Antes tenia la web en un servidor
de USA y
todas las fechas de mi base de datos estan guardadas en formato: mm/dd/yy
y todo mi código està adaptado para este formato.

Ahora he trasladado mi site web a un servidor de Londres y ahora tengo un
problema
con las fechas ya que en la base de datos sigue estando en formato
mm/dd/yy, pero
cuando hago una consulta al mostrar la fecha por pantalla me cambia el
formato a:
dd/mm/yy, esto me supone un problema ya que mi código està preparado para
transformar la fecha.

He configurado el servidor para Regional settings para que utilice todo
como USA, pero no se que tengo que configurar en SQL server.

Hay algun setting general en SQL para especificar el formato de la fecha?
Me gustaria no tener que tocar el código de la web, algun setting a
cambiar en SQL Manager?

Muchas gracias.







Respuesta Responder a este mensaje
#3 Miguel Egea
07/11/2005 - 16:52 | Informe spam
Tendrías que hacer una de las dos siguientes alternativas

1. Si en una variable datetime introduces el valor de ordermaster.fecha no
debes tener ningún problema. Supongo que el problema es que es asp (por
cierto tienes problemas de inyección de código, si request(id) vale ' drop
table customers' te borrarán tu tabla clientes (seguramente no por que
tendrás integridad referencial, pero ponte a imaginar).

2.- Ejectuar el comando SET DATEFORMAT XXX busca en los libros en pantalla

3.- cambiar el idioma por defecto del usuario con el que te conectas (mira
en los bols sp_defaultlanguage.


Tanto 2 como 3 son un poco "chapuza", quiero decir que no resuelven el
problema en tu aplicación, sino que lo "arreglan" en el server.

Espero que te sirva, si necesitas algo más , aquí estamos.

Miguel Egea
Visita mi web http://www.portalsql.com
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:
Ok lei el documento, gracias.

Pero no tengo una relación directa para solucionar por ahora mi problema
con el documento.

Mi base de datos esta en ingles, mi usuario de conexion está en ingles, no
tendria que haber problemas para mostrar las fechas en formato ingles, no?

De hecho solo una parte del código me da el formato de fechas cambiado

Te pongo el código haber si puedes saber algun setting que cambie este
dato o algun:
////////////////////////////////////////////
var DBConn = Server.CreateObject('ADODB.Connection');
InitConnection(DBConn);
var cmdTmp = Server.CreateObject('ADODB.Command');
var rsTmp = Server.CreateObject('ADODB.Recordset');
cmdTmp.ActiveConnection = DBConn;
rsTmp.Source = cmdTmp;
cmdTmp.CommandType = 1;
cmdTmp.CommandTimeout = 10;
cmdTmp.CommandText = 'Select UserFirstName, UserLastName, Items.*,
OrderDetails.*, OrderMaster.* From Customers, Items, OrderDetails ,
OrderMaster Where ItemID=OrderProductID And
OrderMaster.OrderNo=OrderDetails.OrderNo And OrderMaster.UserEMail =
Customers.UserEMail And OrderDetails.OrderNo=' + Request("id");
rsTmp.CacheSize = 10;
rsTmp.CursorType = 3;
rsTmp.CursorLocation = 3;
rsTmp.LockType = 1;
rsProducts.setRecordSource(rsTmp);
rsProducts.open();
//////////////////////////////////////////


Perdón por hacerte trabajar tanto.
Estoy buscando la solución, pero es que es un problema muy grave y por
ahora necessito solucionarlo aunque no sea la mejor solución...

Muchas gracias.



"Maxi" escribió en el mensaje
news:%
Hola, leete este articulo:

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


Salu2
Maxi [MVP SQL SERVER]


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

Tengo un SQL server para mi site web. Antes tenia la web en un servidor
de USA y
todas las fechas de mi base de datos estan guardadas en formato:
mm/dd/yy
y todo mi código està adaptado para este formato.

Ahora he trasladado mi site web a un servidor de Londres y ahora tengo
un problema
con las fechas ya que en la base de datos sigue estando en formato
mm/dd/yy, pero
cuando hago una consulta al mostrar la fecha por pantalla me cambia el
formato a:
dd/mm/yy, esto me supone un problema ya que mi código està preparado
para
transformar la fecha.

He configurado el servidor para Regional settings para que utilice todo
como USA, pero no se que tengo que configurar en SQL server.

Hay algun setting general en SQL para especificar el formato de la
fecha? Me gustaria no tener que tocar el código de la web, algun setting
a cambiar en SQL Manager?

Muchas gracias.











Respuesta Responder a este mensaje
#4 josepe
07/11/2005 - 17:02 | Informe spam
Parece que es un problema de los objetos de Interdev y el sistema.
En la web hay varios objetos creados por Interdev (Connection, Recordset...)
a través
de sus funciones.

Si hago la consulta creando mis propios objetos de ASP, devuelve
correctamente
las fechas, tal y como está configurado el sistema: (mm/dd/año)

No se que puedo hacer a parte de reacer el código
(Dichosos objetos de interdev!)

Alguna idea?

Muchas gracias.


"josepe" escribió en el mensaje
news:
Ok lei el documento, gracias.

Pero no tengo una relación directa para solucionar por ahora mi problema
con el documento.

Mi base de datos esta en ingles, mi usuario de conexion está en ingles, no
tendria que haber problemas para mostrar las fechas en formato ingles, no?

De hecho solo una parte del código me da el formato de fechas cambiado

Te pongo el código haber si puedes saber algun setting que cambie este
dato o algun:
////////////////////////////////////////////
var DBConn = Server.CreateObject('ADODB.Connection');
InitConnection(DBConn);
var cmdTmp = Server.CreateObject('ADODB.Command');
var rsTmp = Server.CreateObject('ADODB.Recordset');
cmdTmp.ActiveConnection = DBConn;
rsTmp.Source = cmdTmp;
cmdTmp.CommandType = 1;
cmdTmp.CommandTimeout = 10;
cmdTmp.CommandText = 'Select UserFirstName, UserLastName, Items.*,
OrderDetails.*, OrderMaster.* From Customers, Items, OrderDetails ,
OrderMaster Where ItemID=OrderProductID And
OrderMaster.OrderNo=OrderDetails.OrderNo And OrderMaster.UserEMail =
Customers.UserEMail And OrderDetails.OrderNo=' + Request("id");
rsTmp.CacheSize = 10;
rsTmp.CursorType = 3;
rsTmp.CursorLocation = 3;
rsTmp.LockType = 1;
rsProducts.setRecordSource(rsTmp);
rsProducts.open();
//////////////////////////////////////////


Perdón por hacerte trabajar tanto.
Estoy buscando la solución, pero es que es un problema muy grave y por
ahora necessito solucionarlo aunque no sea la mejor solución...

Muchas gracias.



"Maxi" escribió en el mensaje
news:%
Hola, leete este articulo:

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


Salu2
Maxi [MVP SQL SERVER]


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

Tengo un SQL server para mi site web. Antes tenia la web en un servidor
de USA y
todas las fechas de mi base de datos estan guardadas en formato:
mm/dd/yy
y todo mi código està adaptado para este formato.

Ahora he trasladado mi site web a un servidor de Londres y ahora tengo
un problema
con las fechas ya que en la base de datos sigue estando en formato
mm/dd/yy, pero
cuando hago una consulta al mostrar la fecha por pantalla me cambia el
formato a:
dd/mm/yy, esto me supone un problema ya que mi código està preparado
para
transformar la fecha.

He configurado el servidor para Regional settings para que utilice todo
como USA, pero no se que tengo que configurar en SQL server.

Hay algun setting general en SQL para especificar el formato de la
fecha? Me gustaria no tener que tocar el código de la web, algun setting
a cambiar en SQL Manager?

Muchas gracias.











Respuesta Responder a este mensaje
#5 josepe
07/11/2005 - 18:30 | Informe spam
Gracias, por tus indicaciones, (dejando a parte las possibles mejoras en la
aplicacion, que son muchas)
Si la aplicación y la db funcionaban ok en un servidor de USA y ahora con
los mismos
settings de la DB y del sistema tendria que funcionar igual en un servidor
de UK.
(Con el mismo código! no quiero tocar el código ASP)
Estoy seguro que el problema viene por algun setting del Sql Server o del
sistema, que
no encuentro.
El que me dices tu de cambiar el idioma del usuario que conecta ya lo he
revisado, el usuario tiene el idioma English, (Existe otro idioma... British
english, tambien lo he probado)

De hecho he comprobado que solo es el código ASP creado a partir de
INTERDEV, el que devuelve las fechas en formato europeo. Si hago una página
ASP creando los objetos sin utilizar Interdev, devuelve correctamente las
fechas.

Como puedo cambiar el idioma por defecto de SQL server o el formato por
defecto de SQL SERVER, el <default>?

Se que es un poco estraño, espero haberme explicado bien
Alguna idea?

Muchas gracias.

"Miguel Egea" escribió en el mensaje
news:
Tendrías que hacer una de las dos siguientes alternativas

1. Si en una variable datetime introduces el valor de ordermaster.fecha no
debes tener ningún problema. Supongo que el problema es que es asp (por
cierto tienes problemas de inyección de código, si request(id) vale ' drop
table customers' te borrarán tu tabla clientes (seguramente no por que
tendrás integridad referencial, pero ponte a imaginar).




Si estoy en páginas ASP. Las variables son todas iguales.
Gracias por la info de inyección

2.- Ejectuar el comando SET DATEFORMAT XXX busca en los libros en pantalla



Esto debo hacerlo cada vez que conecto con la db?
Tengo muchas páginas que tienen una conexión.

3.- cambiar el idioma por defecto del usuario con el que te conectas (mira
en los bols sp_defaultlanguage.



El usuario con que me conecto ya tiene el idioma English en SQL server.


Tanto 2 como 3 son un poco "chapuza", quiero decir que no resuelven el
problema en tu aplicación, sino que lo "arreglan" en el server.


Miguel Egea
Visita mi web http://www.portalsql.com
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:
Ok lei el documento, gracias.

Pero no tengo una relación directa para solucionar por ahora mi problema
con el documento.

Mi base de datos esta en ingles, mi usuario de conexion está en ingles,
no tendria que haber problemas para mostrar las fechas en formato ingles,
no?

De hecho solo una parte del código me da el formato de fechas
cambiado

Te pongo el código haber si puedes saber algun setting que cambie este
dato o algun:
////////////////////////////////////////////
var DBConn = Server.CreateObject('ADODB.Connection');
InitConnection(DBConn);
var cmdTmp = Server.CreateObject('ADODB.Command');
var rsTmp = Server.CreateObject('ADODB.Recordset');
cmdTmp.ActiveConnection = DBConn;
rsTmp.Source = cmdTmp;
cmdTmp.CommandType = 1;
cmdTmp.CommandTimeout = 10;
cmdTmp.CommandText = 'Select UserFirstName, UserLastName, Items.*,
OrderDetails.*, OrderMaster.* From Customers, Items, OrderDetails ,
OrderMaster Where ItemID=OrderProductID And
OrderMaster.OrderNo=OrderDetails.OrderNo And OrderMaster.UserEMail =
Customers.UserEMail And OrderDetails.OrderNo=' + Request("id");
rsTmp.CacheSize = 10;
rsTmp.CursorType = 3;
rsTmp.CursorLocation = 3;
rsTmp.LockType = 1;
rsProducts.setRecordSource(rsTmp);
rsProducts.open();
//////////////////////////////////////////


Perdón por hacerte trabajar tanto.
Estoy buscando la solución, pero es que es un problema muy grave y por
ahora necessito solucionarlo aunque no sea la mejor solución...

Muchas gracias.



"Maxi" escribió en el mensaje
news:%
Hola, leete este articulo:

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


Salu2
Maxi [MVP SQL SERVER]


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

Tengo un SQL server para mi site web. Antes tenia la web en un servidor
de USA y
todas las fechas de mi base de datos estan guardadas en formato:
mm/dd/yy
y todo mi código està adaptado para este formato.

Ahora he trasladado mi site web a un servidor de Londres y ahora tengo
un problema
con las fechas ya que en la base de datos sigue estando en formato
mm/dd/yy, pero
cuando hago una consulta al mostrar la fecha por pantalla me cambia el
formato a:
dd/mm/yy, esto me supone un problema ya que mi código està preparado
para
transformar la fecha.

He configurado el servidor para Regional settings para que utilice todo
como USA, pero no se que tengo que configurar en SQL server.

Hay algun setting general en SQL para especificar el formato de la
fecha? Me gustaria no tener que tocar el código de la web, algun
setting a cambiar en SQL Manager?

Muchas gracias.















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