Se på værdien:
'2013-31-01 16:00:40'
Det er at prøve at bruge en måned af 31.
Det er ikke klart, om det blot betyder, at dine testdata er forkerte, eller om du skal ændre disse linjer:
SELECT SUBSTRING(DATE,3,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,1,1) FROM db.test_table INTO LDAY;
til:
SELECT SUBSTRING(DATE,1,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,4,2) FROM db.test_table INTO LDAY;
Bemærk ændringen fra 1 til 2 for understrengen, der starter ved 1 alligevel, og ændringen af den anden startposition fra 3 til 4. Du vil have tocifrede måneds- og dagværdier, ikke? Hvis dit dataformat er faktisk D/M/ÅÅÅÅ (dvs. kun at bruge to cifre, når de er påkrævet), så vil du ikke være i stand til at bruge faste understrengspositioner.