Sql-Server-2012

將列預設為下個月的 1 日

  • July 18, 2019

我正在嘗試找到將列值預設為下個月 1 日的最優雅的方法。我能想到的最好的是:

ALTER TABLE Foo ADD
Bar datetimeoffset(0) NOT NULL DEFAULT(DATEFROMPARTS(DATEPART(year, DATEADD(month, 1, GETDATE())), DATEPART(month, DATEADD(month, 1, GETDATE())), 1))

雖然這行得通,但感覺真的很笨拙,因為我需要計算DATEADD(month, 1, GETDATE())兩次*,*因為我需要DATEFROMPARTS跳舞。

有沒有更簡單的方法來實現我的目標?

它認為這將是最簡單的方法。

DATEADD(DD,1,EOMONTH (GETDATE()))

所以你的查詢就像

ALTER TABLE Foo ADD
Bar datetimeoffset(0) NOT NULL DATEADD(DD,1,EOMONTH (GETDATE()));

謝謝!

引用自:https://dba.stackexchange.com/questions/243142