2012-10-17 78 views
1

我想取当前日期并将其增加到下个月的第15天。将日期增加到下个月的特定日期

[<Date> #dmmm 15, yyyy] 

Result: 
Oct 15, 2012 

DESIRED RESULT: 
Nov 15, 2012 

预先感谢您的帮助!

+0

你能提供更多的细节吗?存储在数据库中时你想要增加吗?我只是假设它是一个数据库问题与你的标签(没有别的表明你的环境或你正在尝试做什么)。对其他人来说,这可能更加明显,只是试图澄清。 – jheddings

回答

0

好吧,如果你开始的日期是15日,那么你就可以执行此操作:但是

SELECT DATEADD(mm, 1, [DateField]) 

,如果我们不知道是什么开始的第一天是我们必须构建我们可以先启动的日期,所以你可以做这样的事情:

SELECT DATEADD(mm, 1, 
    CAST(
     CAST(DATEPART(mm, [DateField]) AS VARCHAR) + 
     '/15/' + 
     CAST(DATEPART(yy, [DateField]) AS VARCHAR) 
    AS DATETIME)) 

从阿隆 - 这里是我会怎么写这避免简写,地区问题和不当的铸造:

SELECT DATEADD(MONTH, 1, CONVERT(CHAR(6), DateColumn, 112) + '15') 
FROM ... 
+0

工作完美 - 非常感谢,@BigM! –

+0

@JamieS,不是问题,我很高兴我可以帮助! –

+1

这里要非常小心两件事:(1)投射到没有长度的varchar。在这种情况下没关系,但[一般不鼓励鼓励](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-没有-length.aspx)。 (2)这似乎依赖于m/d/y日期格式。用'SET LANGUAGE BRITISH'试试这段代码... –