1
Hallo habe ich eine Funktion versucht, es von Oracle zu MS SQL zu konvertieren, aber ich erhalte falsche Syntax in der Nähe von ‚1‘ eine Zeile 7:MS SQL-Server-Funktion Intervall mit
IF @nPaysQuarterly = 0 BEGIN
-- If the base date is less than March 1st of the given year then the due date is for that year
-- Else the due date is for the year plus 1
If @dBaseDate < convert(DATETIME, '01-Mar-'+isnull(year(@dBaseDate), '')) BEGIN
SET @dDueDate = convert(DATETIME, '01-Mar-'+isnull(year(@dBaseDate), ''));
END
ELSE BEGIN SET @dDueDate = convert(DATETIME, '01-Mar-'+isnull(year(@dBaseDate), '')) + interval '1' year;
END
ELSE IF (@dBaseDate < @dAnnualDue1) BEGIN
SET @dDueDate = @dAnnualDue1;
ELSE IF (@dBaseDate < @dFirstQuarterDue) BEGIN
SET @dDueDate = @dFirstQuarterDue;
ELSE IF (@dBaseDate < @dSecondQuarterDue) BEGIN
SET @dDueDate = @dSecondQuarterDue;
ELSE IF (@dBaseDate < @dThirdQuarterDue) BEGIN
SET @dDueDate = @dThirdQuarterDue;
ELSE IF (@dBaseDate < @dAnnualDue) BEGIN
SET @dDueDate = @dAnnualDue;
END
RETURN AIP.GETNEXTBUSINESSDAY(@dDueDate) ;
END;
falsch Alles, was beim Hinzufügen von 1 Inkrement zum Jahr? Vielen Dank.
starten, können Ihnen dankt es ging glatt, jetzt habe ich einen convertion Fehler an einer anderen Zeile für Datum convertion in Erklärungen zu Beginn erhalten: 'declare @ dAnnualDue1 DATETIME- = CONVERT (DATETIME, @nYear, '') + '/ 03/1'; ' eine Idee, was das brachte? Fehler sagt: Argument Datentyp Varchar ist ungültig für Argument 3 der Funktion konvertieren. –
Verwenden Sie 'convert (Datetime, Cast (@nYear as varchar (4) + '/ 03/01')' anstelle davon – Hadi
Ich benutze es: 'DECLARE @ dAnnualDue1 DATETIME = konvertieren (Datetime, Cast (@nYear als varchar (4) + '/ 03/01'); 'aber erhalte Fehlersyntax bei '+', –