Foros del Web » Programando para Internet » ASP Clásico »

Urgente - Problema Grave En Sentencia Sql De Resta De Fechas Con @lcid=1034

Estas en el tema de Urgente - Problema Grave En Sentencia Sql De Resta De Fechas Con @lcid=1034 en el foro de ASP Clásico en Foros del Web. Saludos: El problema que me afecta es muy grave, puesto que afecta a un boletin diario que llega a más de 7000 suscriptores. Por lo ...
  #1 (permalink)  
Antiguo 04/12/2005, 08:45
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Urgente - Problema Grave En Sentencia Sql De Resta De Fechas Con @lcid=1034

Saludos:
El problema que me afecta es muy grave, puesto que afecta a un boletin diario que llega a más de 7000 suscriptores. Por lo que debería solucionarlo hoy domingo, sino mi trabajo peligra.

El asunto viene porque mi proveedor aunque está ubicado en España usa una máquina con software en ingles, y entonces me da problema con las fechas, puesto que yo las introduzco en formato castellano y el servidor me las convierte a formato inglés. Obviamente esto se produce porque estoy migrando la página a este nuevo servidor, puesto que la capacidad del vejo ya no era suficiente.

Eso lo arreglo con:
<%@LCID = 1034%>

El problema viene cuando necesito listar los registros que tienen fechadepublicacion entre el día actual y el día actual -3.
Utilizo la siguiente sentencia sql

Código:
 
"SELECT * FROM ofertasmayoristas WHERE tipo='MAYORISTA' AND fechapublicacionoferta between cdate('"& cstr(date)&"') and cdate('"&cstr(date-3)&"') order by destinooferta,empresaoferta,fechapublicacionoferta,denominacionoferta"
La base de datos esta en ACCESS
Por ejemplo para el día de hoy date seria: 04/12/2005 y date -3 sería: 01/12/2005

Bien pues el servidor a pesar de tener el lcid me cambia las fechas y las convierte a:
date: 12/04/2005 y date -3: 12/01/2005.

Pero solo hace esto en las fechas que llevan las consultas sql, el resto las muestra bien.
Es como si el lcid no se aplicase sobre la base de datos.

No entiendo por qué hace esto, creo que en teoría debería funcionar correctamente, pero no lo hace.
¿Podrían ayudarme?.
Gracias
__________________

Espero haber aprendido algo de tí.
A mi padre.

Última edición por ciberpata; 04/12/2005 a las 08:53
  #2 (permalink)  
Antiguo 04/12/2005, 19:04
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Hola!

Prueba separando valores antes de introducirlos en el SQL:

Código HTML:
Dim dia, mes, ano, fecha
 
dia = day(actual) -3
mes = month(actual)
ano = year(actual)
 
'En esta variable guardas ya la fecha con 3 dias menos y la utilizas directamente en tu SQL.
fecha = mes&"/"&dia&"/"&ano
 
"SELECT * FROM ofertasmayoristas WHERE tipo='MAYORISTA' AND fechapublicacionoferta between cdate('"& cstr(date)&"') and cdate('"&cstr(fecha)&"') order by destinooferta,empresaoferta,fechapublicacionoferta,denominacionoferta"
Saludos
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #3 (permalink)  
Antiguo 05/12/2005, 02:22
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 22 años
Puntos: 2
Guardando la fecha en el formato aaaa/mm/dd no deberias tener problema con ninguna configuración regional, siempre y cuando establezcas bien el LCID.

Saludos!
__________________
Sergio
  #4 (permalink)  
Antiguo 05/12/2005, 02:51
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Pues va a ser que no funciona Fr@Nc3$c0 me hace exactamente lo mismo. Cuando se pasa la consulta al ACCESS me vuelve a intercambiar el orden del mes y del año.

Hereje: Quiero usar la fecha en formato dd/mm/aaaa usando el lcid=1034 pero el servidor usa la configuración USA equivalente al lcid 1033, por lo que aunque guarde los datos en formato aaaa/mm/dd el access me va a cambiar el orden a mm/dd/aaaa.
__________________

Espero haber aprendido algo de tí.
A mi padre.
  #5 (permalink)  
Antiguo 05/12/2005, 16:37
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Pues que raro ciberpata!

Si aun de esta manera no te funciona parate a pensar en que demonios será. tu el LCID lo pones en el global.asa como yo? y pones el de la region de españa no?

Has probado poner unos cuantos diferentes haber si el server ese esta loco?

Espero tengas solucionado mas que ayer todo. Saludos!
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
  #6 (permalink)  
Antiguo 05/12/2005, 16:39
Avatar de Fr@Nc3$c0  
Fecha de Ingreso: abril-2002
Ubicación: Barcelona (Spain)
Mensajes: 710
Antigüedad: 22 años, 2 meses
Puntos: 1
Otra manera que te queda es separando totalmente los valores, pues a lo mejor el acces del servidor aquel tambien está en ingles y la fecha predeterminada es formato ingles.

Coge el dia, mes y año por valores independientes y los guardas en campos diferentes como dia, mes y ano en la base de datos.
Luego solo tendrás que juntar los datos recogidos.
Saludos!!
__________________
Francesc Mula Calleja
Hay mucho por ver todavía...
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 23:45.