¿Tuviste alguna vez problemas con las fechas? ¿Problemas por la configuracion del formato de la fecha (ingles o español) de la base de datos?
Si es asi, te invito a leer esta pequeña explicación y te propongo que uses la siguiente forma para tratar las fechas. Espero te sirva. Es simplemente una sugerencia de alguien que tubo que lidiar con esos problemas (Yo mismo).
Bueno, vamos a plantear un caso puntual. Tal vez sea el mas experimentado, asi que a la mayoria de uds. recordarán el problema.
Cada motor de bases de datos, tiene una forma de almacenar la fecha. Access, SQL Server, MySQL, etc...
Aqui hablaremos de Access. Igualemente no me voy a detener a explicar como se almacena la fecha, pero si voy a hablar sobre la configuracion de la fecha.
Access configura sus fechas según la configuración regional de la máquina donde está instalado. Entonces nosotros trabajamos felizmente en nuestro servidor local, y cuando subimos nuestra base de datos a otro servidor (uno que esta configurado para ingles) las fechas deben adaptarse a el nuevo formato de fecha que hay en el servidor.
Hasta aqui no habría problema mayor, ya que todas las fechas estarian invertidas. Ejemplo: La fecha 4/5/2002 que localmente indica 4 de Mayo de 2002, al subir la base de datos la fecha sería 5/4/2002... pero esta fecha también es 4 de Mayo de 2002
Empecemos con el problema. Supongamos que al Access en el servidor local, le indicamos que agregue esta fecha: 4/20/2002. Esa fecha en español no existe, pero el "fantastico" Access "piensa" que nos hemos equivocado, y acepta esa fecha y la invierte a 20/4/2002. Este maneje que hizo Access aqui con nuestra fecha, no tiene que ver con el idioma. Simplemente como dije antes "piensa" que nos equivocamos y supuestamente nos resulve el problema automaticamente. Y de aqui vienen todos nuestros problemas con las fechas, ya que si al Access local (en español) le pasamos 20/4/2002 es igual que pasarle 4/20/2002.
Esto mismo pasa en el Access que está en ingles, sólo que al revez claro...
Cual es el problema de todo esto. Simple. Si trabajamos con fechas en español, funcionara simpre bien abajo, pero NO SIEMPRE bien arriba... pero a veces si! Depende justamente de la fecha. Entonces se hace como imposible hacer un sistema que trabaje correctamente tanto en español como en ingles.
La posible solucion: Usar el formato canónico de fecha expresado como YYYY/MM/DD lo que quiere decir expresar la fecha como Año/Mes/Dia. Entonces la fecha 6 de Enero de 2002 se escribe como: 2002/01/06
Access, reconoce correctamente ese formato, asumiendo SIEMPRE que lo primero es el año, lo segundo el mes y lo tercero el dia. Y luego, lo transforma a su formato, pero nos quedamos trankilos que es correcta la fecha!
Atencion! Que pase si pasamos esta fecha: 2002/20/8 ? .... tira error!! y eso por mas malo que paresca es lo mejor que nos puede pasar. Eso SI sería un error nuestro, y es por eso que está bien recibir error de parte del Access
Bueno... entonces concordamos que lo mejor es usar la fecha canonica. A continuación les paso una función a la cual se le pasa como argumento una fecha, y devuelve la fecha en formato canónico. Pero tengan cuidado con la fecha que le pasan!!! Porque puede que le pasen mal el formato de fecha, y la función devolverá una respuesta que no es la que buscamos.
Usuarios que han visto este tema también han visto...
- Comenta tu código en ASP
- Crear base de datos Acces con ASP
- Valor absoluto de un número
- Tipos de conexión a una Base de Datos con ASP
- IIS y el método Server.Execute
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.