Also erstmal verwendest Du ein Client-Format für das Datum. Das ist nicht so gut. Da würde ich als erstes suchen, also nicht DD.MM.YYYY sondern YYYY-MM-DD.
Zweitens solltest Du JEDEN Cast von Integer nach Char mit TRIM einschließen. Und dann das ganze vielleicht noch lesbarer machen. Unabhängig davon dass es da bessere Methoden gibt, würde dies dann so funktionieren:
Code:
SELECT CAST(
TRIM(CAST(2013 as SQL_Char))
+'-'+
IIF(Length(TRIM(CAST(7 as SQL_Char)))= 1,
'0'+TRIM(CAST(7 as SQL_CHAR)), -- IF
TRIM(CAST(7 as SQL_Char))) -- ELSE
+'-'+
TRIM(CAST(31 as SQL_Char))
AS SQL_DATE)
FROM System.iota