Ich habe eine Spalte vom Typ von datetime, die ich in meiner gespeicherten Prozedur benutze, indem ich die zwei lokalen Variablen als @From datetime and @To datetime
deklariere, aber egal was ich mache, bekomme ich den Fehler oder einfach den gespeicherten Prozedur, ohne irgendwelche Datensätze zurückzugeben (vollständig leer).Datumsumwandlung in gespeicherter Prozedur tsql
set @mySql ='
select * from abc where (MyDATE between '''+ cast(@From as datetime) +''' and '''+ cast(@To as datetime)+''')'
Sie müssen lokale Variablen in varchar umwandeln, um sie in einer dynamischen Abfrage zu verwenden. –
Wie gehst du die Parameter? Wenn Sie sie als typisierte Parameter übergeben (und das sollten Sie tun!), Müssen keine Umwandlungen durchgeführt werden. Datumsangaben sind besonders anfällig für Fehler aufgrund von Kultur/Spracheinstellungen ... – Shnugo
Sie haben gerade gesehen, dass Sie dynamisches SQL erstellen ... Warum? Zumindest mit dem Schnipsel gegeben, ist dies nicht notwendig ... – Shnugo