Página 1 de 1
Default datetime en Mariadb guarda NULL
Publicado: Vie Ago 11, 2017 5:54 pm
por gerencia
Hola Ignacio,
En la version 4 definia en una tabla de Mariadb el campo datetime como default '0000-00-00 00:00:00'
`fecha_anulado` datetime DEFAULT '0000-00-00 00:00:00',
y lo guardaba correctamente.
En la version 5 lo guarda NULL.
En espera de tus comentarios,
Re: Default datetime en Mariadb guarda NULL
Publicado: Mar Ago 15, 2017 4:03 pm
por gerencia
Hola Ignacio,
Que me aconsejas acerca de lo anterior.
En espera de tus comentarios,
Re: Default datetime en Mariadb guarda NULL
Publicado: Mar Ago 15, 2017 4:59 pm
por ignacio
Buenos dias,
En mi opinión el tratamiento actual de Xailer 5 es el correcto. El valor que indica está fuera de rango:
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.
No obstante, MySQL admite la fecha con todo ceros como fecha especial invalida:
Invalid DATE, DATETIME, or TIMESTAMP values are converted to the “zero” value of the appropriate type ('0000-00-00' or '0000-00-00 00:00:00').
Y por tanto, tiene mucho sentido que en Xailer se trate como valor nulo. Desgraciadamente en Harbour no podemos distinguir entre valores inválidos especiales y valores nulos. El tipo NULL es algo inherente a cualquier entrono SQL, mientras que lo del valor invalido es algo bastante raro en mi opinión. De hecho, cuando lo he leído, he tenido que releerlo varias veces, por lo inaudito que me parecía.
Siento que tenga que cambiar algún condicional comparando con NULL en vez de con una fecha de mes y día cero

, pero me te temo que es su mejor opción.
Un saludo