如何在 SQL Server 中找到上个月的第 XX 天?

Joh*_*nux 3 sql-server-2008-r2 datetime

我有2个参数,

  • 输入日期 (DATETIME)
  • 输入日期 (TINYINT)

如果我输入 11 MAR 2014 作为 DATETIME,输入 26 作为月份的输入日期,我想选择 26 FEB 2014 作为输出 DATETIME。

换句话说,我想选择上一个日历月的第 X 天。然后我将使用 DATEDIFF 来查找当前的会计日期。

Aar*_*and 7

DECLARE @d DATETIME = '20140311', @dm TINYINT = 26;

SELECT DATEADD(DAY, @dm-1, DATEADD(MONTH, -1, DATEADD(DAY, 1-DAY(@d), @d)));
Run Code Online (Sandbox Code Playgroud)

结果:

2014-02-26 00:00:00.000
Run Code Online (Sandbox Code Playgroud)