Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Колоната DateAdd причини препълване

Мога да дублирам грешката със следното:

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

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

грешка след стартирането му:

По принцип posting_date в горния случай е минималната стойност за дата и час, разрешена от SQL сървъра. Ако след това се опитате да извадите 1 ден от него, той влиза в състояние на препълване.

Предполагам, че имате точка от данни, която е зададена на Минималната стойност на датата на 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. Преобразувайте ISO форматирана дата в DATETIME

  2. Динамични централни колони в SQL Server

  3. Определяне на последния добавен ред, когато няма индекс

  4. Групирайте данните по реда на промяна на стойността на колоната за групиране

  5. Конструирайте дата от номер на година и седмица в MSSQL