Podívejte se na hodnotu:
'2013-31-01 16:00:40'
To se pokouší použít měsíc z 31.
Není jasné, zda to jen znamená, že vaše testovací data jsou nesprávná, nebo zda potřebujete změnit tyto řádky:
SELECT SUBSTRING(DATE,3,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,1,1) FROM db.test_table INTO LDAY;
komu:
SELECT SUBSTRING(DATE,1,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,4,2) FROM db.test_table INTO LDAY;
Všimněte si změny z 1 na 2 pro podřetězec začínající na 1 a změnu druhé počáteční pozice z 3 na 4. Chcete dvoumístné hodnoty měsíce a dne, že? Pokud je váš formát dat ve skutečnosti D/M/RRRR (tj. pouze použití dvou číslic, když jsou vyžadovány), pak nebudete moci používat pevné pozice podřetězců.