Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Kolumna DateAdd spowodowała przepełnienie

Mogę powielić błąd w następujący sposób:

declare @posting_date datetime
set @posting_date = '1/1/1753'

select DATEADD(day, -1 , DATEADD(mm, DATEDIFF(mm,0,@posting_date),0)) 

błąd po uruchomieniu:

Zasadniczo posting_date w powyższym przypadku jest minimalną wartością daty i czasu dozwoloną przez serwer SQL. Jeśli następnie spróbujesz odjąć od niej 1 dzień, przejdzie w stan przepełnienia.

Domyślam się, że masz punkt danych, który jest ustawiony na Minimalna wartość daty w SQL Server .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak włączyć ograniczenie wyboru w programie SQL Server (przykład T-SQL)

  2. Jak wstawić wiele rekordów i uzyskać wartość tożsamości?

  3. Jak łączyć zmienne w ciągi SQL

  4. Skumulowana wartość bieżącego wiersza + suma poprzednich wierszy

  5. Jak mogę zrobić klucz podstawowy jako AUTOINCREMENT?