Thema: SQL Datum

Einzelnen Beitrag anzeigen

Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#1

SQL Datum

  Alt 2. Aug 2013, 10:15
Datenbank: ADS • Version: 10.10 • Zugriff über: Delphi
Moin,
ich baue mir aus einem Monat und einem Jahr ein Datum zusammen.

Code:
SELECT CAST('01.'+IIF(Length(TRIM(CAST(7 as SQL_Char)))= 1, '0'+TRIM(CAST(7 as SQL_CHAR)), CAST(7 as SQL_Char))+'.'+CAST(2013 as SQL_Char) as SQL_Date) FROM System.iota
So funktioniert es.
Problem ist jetzt aber, dass ich nicht mehr den ersten des Monats brauche sondern den letzten.
Dazu habe ich mir eine Funktion geschrieben, die mir aus dem übergebenem Monat und Jahr den letzten Tag zurückliefert.

Code:
CREATE FUNCTION ZMIF.GetLastDayOfMonth
   ( 
   Year INTEGER,
      Month INTEGER
   )
   RETURNS INTEGER
BEGIN
Return DAYOFMONTH(CONVERT(TIMESTAMPADD(SQL_TSI_DAY, -1, TIMESTAMPADD( SQL_TSI_MONTH, 1, CREATETIMESTAMP( Year, Month, 1, 0, 0, 0, 0 ))), SQL_DATE));

END;
Die Funktion baue ich in mein SQL Statement ein und caste den Integer in eine Character.
Code:
SELECT CAST(CAST(GetLastDayOfMonth(2013, 7) as SQL_Char)+'.'+IIF(Length(TRIM(CAST(7 as SQL_Char)))= 1, '0'+TRIM(CAST(7 as SQL_CHAR)), CAST(7 as SQL_Char))+'.'+CAST(2013 as SQL_Char) as SQL_Date) FROM System.iota
Fehlermeldung ADS:
Zitat:
Conversion error with scalar
CAST -- Location of error in the SQL statement is: 9 (line: 2 column: 8)
  Mit Zitat antworten Zitat