首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Server 2008中计算所需的日期?

如何在Server 2008中计算所需的日期?
EN

Stack Overflow用户
提问于 2015-09-24 15:39:31
回答 2查看 53关注 0票数 2

需要检查今天的日期是否< 20,然后将结果变量设置为下个月的第一天。如果今天的日期> 20,那么将结果var设为下个月之后的下一个月的第一天?

示例:

  • 24-09-2015集结果转换为1st Nov 2015
  • 19-09-2015集结果转换为1st Oct 2015
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-24 15:42:38

这似乎有点棘手,因为日期算法:

代码语言:javascript
复制
set @var = (case when day(getdate()) < 20
                 then cast(dateadd(month, 1, dateadd(day, 1 - day(getdate()), getdate())) as date)
                 else cast(dateadd(month, 2, dateadd(day, 1 - day(getdate()), getdate())) as date)
            end);

这里是显示计算的SQL。

票数 2
EN

Stack Overflow用户

发布于 2015-09-24 15:46:40

这将给你的结果:

代码语言:javascript
复制
DECLARE @d DATE = '20150924'
SELECT CASE WHEN DAY(@d) < 20 
            THEN DATEADD(mm, 1, DATEADD(dd, -DAY(@d) + 1, @d)) 
            ELSE DATEADD(mm, 2, DATEADD(dd, -DAY(@d) + 1, @d)) END;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32765516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档