Skocz do zawartości

Raport własny SQL - problem z datą

Polecane posty

W dniu 10.05.2022 o 02:20, Jerzy Biesiadowski napisał:

Od kilku wersji mam problem z użyciem daty jako parametru

obraz.png.3c1dde53f61c39fac7c975e6fd015153.png

Konstrukcja zapytania {D:Jakaś data} generuje parametr SQL typu DATETIME2, który ma zakres 1-1-0001 do 31-12-9999, zatem jeżeli wpiszemy= {D:Jakaś data} bez wskazywania wartości domyślnej, to zostanie użyta wartość '0001-01-01 00:00:00.0000000'.

 

Parametr SQL typu DATETIME ma zakres 1-1-1753 do 31-12-9999, jeżeli więc wykonamy się poniższe zapytanie

DECLARE @data DATETIME = {D:Jakaś data}

To przy wykonaniu takiego zapytania SQL będzie próbował wykonać konwersję typu DATETIME2 na DATETIME i w rezultacie wartości 1-1-0001, gdzie nastąpi błąd przekroczenia zakresu przy konwersji.

 

Podobny błąd można uzyskać wykonując zapytanie w SSMS takiej postaci:

DECLARE @Param DATETIME2 = '00010101' -- minimalna wartość
PRINT @Param
DECLARE @data DATETIME = @Param

Prawidłowe zapytanie powinno zatem wyglądać następująco:

DECLARE @data DATETIME2 = {D:Jakaś data}
Link to postu
×
×
  • Dodaj nową pozycję...