Kald til Stored Procedure med dato parameter sat til '' fejler med "Error Code: 1292. Incorrect datetime value"
Manualen siger"Illegal 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')."
Jeg har lavet SP'er imod en MySQL 5.0 server, og der virker det fint når jeg kalder en procedure med blank værdi for en DATETIME variabel.
Jeg bemærkede dog, at hvis jeg kalder en SP fra en anden SP, så vil den ikke acceptere '' (blank) og fejler.
Nu installerede jeg min egen server (5.5) lokalt, og her giver den fejl når jeg kalder samme SP fra konsollen.
Når jeg angiver NULL som variabel, fejler den ikke.
Inde i min SP anvender jeg følgende kode for at tildele passende default-værdi:
IF ISNULL(TO_DAYS(tidspunkt)) THEN
-- SET fra = Now();
SET tidspunkt = '1000-01-01 00:02:00';
END IF;
Denne kode kan normalt både håndtere NULL og '0000-00-00 00:00:00' (som jo er "fejl"-værdien)
Så mit spørgsmål går ud på:
1. Er det "ok" at kalde en SP med '' (blank) i variablen
2. Findes der en server-indstilling, som tillader "fejl"-datoer i SP'kald, som så kan omsættes til '0000-00-00' ?