FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Duda sobre el tipo de datos DATETIME en MYSQL
Buenos Días:
Solicito auxilio de alguna alma caritativa que pueda darme un poco de luz con esta ignorancia que tengo y la cual procedo a tratar de explicar: He estudiado cierto tiempo una funcion de MYSQL llamada DATEDIFF() DATEDIFF() devuelve el número de días entre la fecha de inicio expr y la de final expr2. expr y expr2 son expresiones de tipo date o date-and-time. Sólo las partes correspondientes a la fecha de cada expresión se usan en los cáculos. Pues bien despues de estudiarla procedí a probarla con un par de campos de una tabla que de una BD que tengo que tiene los siguientes valores: campo1= 12/07/2007 23:30:12 y campo 2= 12/07/2007 23:30:05 Entonces me puse a experimentar la funcion con este par de datos y haciendo algunos campos para experimentar si ponia un valor primero o despues para probar, entonces me dí cuenta que no funciona correctamente y otra vez lo probe de varias maneras quitandole la fecha y a veces jalaba y a veces no... total que termine preguntandome ¿Que esta pasando? Ah de repente me fije bien y resulta que los ejemplos de Datediff en la documentacion de MYSQL vienen de manera que la fecha se pone con guiones osea asi: SELECT DATEDIFF('1997-11-31 23:59:59','1997-12-31'); Pero resulta que en la BD los valores de datetime se guardan asi: campo1= 11/31/1997 23:59:59 Entonces esa diferencia de que se almacena con '/' para separar las partes de la fecha hace que ya no jale bien la funcion, entonces ahi lo que tuve que hacer es crear una rutina para poder crear una variable con el formato correcto para poderle applicar la funcion, lo cual me parece innecesario por que segun yo no deberia ser asi, se deberia almacenar la fecha con el formato correcto asi como viene en los ejemplos de mysql. Alguien me podria explicar como le hago para que los valores de fecha en un campo de tipo datetime se almacenen con el valor con el formato correcto? osea asi: valor1= 1997-11-31 23:59:59 pero no asi: 31/11/2007 23:59:59 Muchas Gracias.
__________________
"Los unicos que no se equivocan son aquellos que no intentan hacer algo." Iván Caballero Cano... ivanhalen77@gmail.com |
#2
|
||||
|
||||
Cita:
MySQL seguramente guarda las fechas internamente como números, similar a como hace Delphi. Pero para especificar fechas mediante texto, MySQL usa el formato aaaa-mm-dd, tal como has visto en los ejemplos. Ahora bien, en estos momentos hago una prueba accediendo a una tabla MySQL con ZEOS, y- efectivamente -veo las fechas en formato dd/mm/aaaa. Pero esto no quiere decir que así estén amacenadas, simplemente quiere decir que ése es el formato de fecha que tengo establecido en Windows. Si lo cambio, cambia también la presentación. Si hago un moldeo:
"desenmascaro" el formato y se muestra tal como lo hace MySQL por defecto, es decir, con aaaa-mm-dd. Y esto es así porque el motor, para hacer el moldeo usa sus propios estándares. // Saludos |
#3
|
||||
|
||||
Tienes la razón, con ese detalle que me diste lo pude solucionar.
Gracias.
__________________
"Los unicos que no se equivocan son aquellos que no intentan hacer algo." Iván Caballero Cano... ivanhalen77@gmail.com |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
duda sobre base de datos | oscarpinog | Tablas planas | 20 | 13-08-2007 20:46:33 |
Duda con ADOTable y tipo datos Variant | jhcaboverde | Varios | 0 | 12-07-2007 18:00:56 |
Restar dos campos de Tipo DateTime | JuanPa1 | SQL | 4 | 19-08-2006 03:03:34 |
Usar tipo de datos double con mysql..... | uper | MySQL | 2 | 18-10-2005 21:31:42 |
Duda sobre tipo de campo en Tabla Paradox | Aprendiendo | Tablas planas | 2 | 04-02-2005 09:47:52 |
|