SQL,根据一年中的时间返回标准日期

时间:2014-10-08 16:54:41

标签: sql sql-server date

如何返回当前日期 7月1日当前年份的当前年份 7月1日,并返回 7月1日上一年度当前日期在 7月1日当前年度之前?

我在查询中写了这个,但我一直收到这个错误:

  

“不允许从数据类型datetime到int的隐式转换。   使用CONVERT函数运行此查询。“

这是我的SQL查询:

CASE WHEN GETDATE() >= 
(DATETIME2FROMPARTS (year(GETDATE()), 07, 01, 0, 0, 0, 0, 0))
    THEN (DATETIME2FROMPARTS (DATEADD(year, 0, GETDATE()), 07, 01, 0, 0, 0, 0, 0)) 
    ELSE  (DATETIME2FROMPARTS (DATEADD(year, -1, GETDATE()), 07, 01, 0, 0, 0, 0, 0))
    END AS EntryDate,

1 个答案:

答案 0 :(得分:1)

让我假设你的意思是在7月1日或之后。也许这就是你想要的:

(case when month(getdate()) >= 7
      then DATETIME2FROMPARTS(year(GETDATE() + 1, 07, 01, 0, 0, 0, 0, 0)
      else DATETIME2FROMPARTS(year(GETDATE(), 07, 01, 0, 0, 0, 0, 0)
 end)