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

Algo extraño en fechas

Estas en el tema de Algo extraño en fechas en el foro de ASP Clásico en Foros del Web. Amigos, Tengo en cada página -parte superior- lo siguiente: <%Session.LCID = 1034%> De ese modo, cuando insertaba Fecha en mi Base de Datos alojada en ...
  #1 (permalink)  
Antiguo 05/08/2003, 02:10
AZP
 
Fecha de Ingreso: junio-2003
Mensajes: 83
Antigüedad: 21 años
Puntos: 0
Algo extraño en fechas

Amigos,

Tengo en cada página -parte superior- lo siguiente:

<%Session.LCID = 1034%>

De ese modo, cuando insertaba Fecha en mi Base de Datos alojada en Brinkster (EEUU), me insertaba lo siguiente:

27/07/2003 -correcto-

No obstante, de buenas a primeras y nada más comenzar el mes de agosto, me inserta lo siguiente:

08/01/2003 cuando debería insertar 01/08/2003

Ello provoca que cuando selecciono los casos por fecha se produzca un auténtico caos.

¿Qué sucede?

Un saludo,

AZP
  #2 (permalink)  
Antiguo 05/08/2003, 10:47
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
las malditas fechas... no sé si hay alguna solución 100% efectiva.
Me ocurrió en varias oportunidades que ASP (o Access.. ya no sé quién es el caprichoso) me cambiaba el formato de la fecha al que usan en EEUU hasta en un servidor en castellano con la configuración regional que nos corresponde y sin que nadie toque nada de nada (el servidor está a metros de mi puesto de trabajo y JURO que nadie toca nada)

Lo que hago es definir el campo dónde voy a guardar las fechas en formato numérico y las almaceno como AAAAMMDD. Luego, para visualizarlas en un formato "más humano", le hago un tratamiento de cadenas y la formatéo como DD/MM/AAAA

ODIO las fechas :D
__________________
...___...
  #3 (permalink)  
Antiguo 31/10/2003, 14:29
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 7 meses
Puntos: 0
creo saber por que

retomo este tema por que a mi tambien me paso y me saco mucho de onda ....

el caso que dicen es:

08/01/2003 cuando debería insertar 01/08/2003

es decir lo inserta con el formato:

mm/dd/aaaa cuando deberia ser dd/mm/aaaa

por lo que nuestra BD en Access debe de estar en fecha formato corto es decir dd/mm/aaaa

a mi me pasaba lo mismo, por lo ke cambie a formato mediano asi
cuando insertaba en la Bd hacia

1-ago-2003 y yaaaaaaaa!!!!

en lugar de 01/08/2003 lo ke provocaba el 08/01/2003

pero el usar el formato mediano en busquedas "por ejemplo" me ha dado problemas en esto: en mi BD tengo una fecha como:
1-ago-2003 pero en la Sente SQL debo de usar
1-aug-2003 = fechaBD ,,, es decir 1-ago-2003 !!!!! no entiendo ke pasa....

ademas el usar el formato mediano me ha dado problemas en funciones como weekday !! ???????????????

Buenooo la solucion ke voy a probar (no se si funcione al 100%)esperenme para decir ke pasa...pero hasta este momento creo que la solucion puede ser esta:

cuando insertes en la BD en lugar de usar el formato

dd/mm/aaaa (lo ke provocaba el 08/01/2003)

usa el

aaaa-mm-dd

con lo ke se almacena correctamente como 01/08/2003

¡¡¡¡¡¡¡¡¡¡¡¡¡¡ bueno hasta ahora creo ke esa es la solucion si alguien sabe si estoy equivocado digameeeeeeeeeeeeee
el formato ke propongo aaaa-mm-dd me lo propusieron en este foro y es un estandar de no se ke...... pero creo ke si funciona.....


cheken

http://www.asptutor.com/asp/vart.asp?id=72

Última edición por xlugo2002; 31/10/2003 a las 15:24
  #4 (permalink)  
Antiguo 01/11/2003, 13:36
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
y porque no lo haces asi:

dia = day(now())
mes = month(now())
ano = year(now())

y luego los unes asi: dia & "/" & mes & "/" & ano
asi aseguras que salga siempre de la forma que tu quieres y ningun servidor te cambiara ese formato
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #5 (permalink)  
Antiguo 03/11/2003, 09:59
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 7 meses
Puntos: 0
un comentario mas....

oye AZP cuando me pasó eso creo ke pasaba cuando el dia hiba del 1-12 pero cuando el dia era 13-31 funciona bien... checalo a ver si tengo razon, esto para cualquier mes...........

y lo ke dice lexus, pos creo ke no funciona.......
  #6 (permalink)  
Antiguo 03/11/2003, 15:16
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
por que dices que no funciona?

yo lo he usado por mucho tiempo y nunca me ha dado problemas asi..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #7 (permalink)  
Antiguo 03/11/2003, 16:31
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
access no se si tendra la magia de darle formato a las fechas cuando se ingresen directamente desde el sql..por lo menos en oracle yo uso el to_date para forzar a que la fecha me la ingrese como yo deseo y asi me ahorro el tema de LCID y la configuracion regional del equipo..


insert into tabla values (to_date('" + fecha + "','dd/mm/yyyy),......)

saludos
  #8 (permalink)  
Antiguo 04/11/2003, 01:18
Avatar de LeCLUB  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona (España)
Mensajes: 205
Antigüedad: 21 años, 1 mes
Puntos: 1
Pues yo utilizo la forma que comenta Lexus.

Una pequeña funcion que la puedes añadir desde un INCLUDE para que no moleste a la vista:

Function FechaCorrecta(valor)
Dia = Day(valor)
Mes = Month(valor)
Ano = Year(valor)
FechaCorrecta = (Dia & "/" & Mes & "/" & Ano)
End Function

Y luego "arreglar" todas las fechas que quieras con ella:

- FechaCorrecta(Now())
- Variable = FechaCorrecta(rs("fecha"))
- Response.write FechaCorrecta(rs("fecha"))
- etc etc etc

Nose, creo que es más práctico, no haces "inventos" raros en la BBDD, puedes tener los campos de la BBDD en formato Fecha para, por si en un futuro lo necesitas, comparar fechas, buscar fechas, etc, y si un día cambias de BBDD, no hay que tocar nada.
  #9 (permalink)  
Antiguo 04/11/2003, 02:40
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
xlugo2002, el formato aaaa-mm-dd para fechas y aaaa-mm-dd-hh.nn.ss.ccccc para horas es el estandar de ISO y vale para cualquier gestor de bd. Es el que se usa para evitar ese tipo de problemas.
Un saludo.
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 21:45.