SQL Server - Zuweisen von Standard-DateTime-Wert zu Parameter in der Gespeicherten Prozedur
Vielleicht bin ich ein idiot hier, aber ich versuche zuweisen einer Standard-DateTime Wert an eine Gespeicherte Prozedur in MS SQL Server 2005 aber nicht bekommen kann es arbeiten, z.B.:
CREATE PROCEDURE MyProcedure
(
@MyInteger INT = 123,
@MyDateTime DATETIME = CONVERT(DATETIME, '1753-01-01 00:00:00', 20)
)
AS
BEGIN ... (snip)
Also, wenn die @MyDateTime
input-parameter nicht angegeben, es sollten '1753-01-01 00:00:00' gesetzt, aber ich bekomme die Fehlermeldung...
Incorrect syntax near the keyword 'CONVERT'.
Kann ich es auf der Arbeit für ganze zahlen ganz gut. Was mache ich falsch?
Edit: aus den Antworten unten, ich ging schließlich mit den folgenden in der Sproc selbst:
CREATE PROCEDURE MyProcedure
(
@MyInteger INT = 123,
@MyDateTime DATETIME = NULL
)
AS
BEGIN
SET NOCOUNT ON
SET @MyDateTime = COALESCE(@MyDateTime, CONVERT(DATETIME, '1753-01-01 00:00:00', 20))
...snip...
END
Du musst angemeldet sein, um einen Kommentar abzugeben.
@MyDateTime DATETIME ='1753-01-01 00:00:00'
Oder direkt in der sproc Sie dies tun können:
SELECT @MyDateTime = (SELECT CONVERT(DATETIME, '1753-01-01 00:00:00', 20))
Den Fehler durch Aufruf UMWANDELN, die Sie nicht tun können, wenn säumige Parameter.
SET NOCOUNT ON
oder am Anfang der gespeicherten Prozedur. Es ist, wo Sie anrufen können, zu konvertieren.Können Sie nicht die CONVERT () - Funktion aufrufen, in der es, weisen Sie einfach der default-Wert über die entsprechende datetime-Zeichenfolge.