是这样的,客户的一个日期计算,他们的月数,总是少一天的,但我得出的结果总是要么多要么少,怎么办?
比如:
客户说的,3个月
是2014/1/1~2014/3/30
2个月:
2014/8/15~2014/10/14
软件是用DELPHI做的,我直接用日期计算出月数差,然后直接+1,结果有时对有时错,
我想在SQL里做计算,怎么解决这个问题?有没可靠的方式实现?
谢谢...
------解决思路----------------------
那按照你的这两个例子,这样就行了
select dateadd(month,3,'2014-01-01')-1
------解决思路----------------------
DECLARE @SDATE VARCHAR(10) --开始时间
DECLARE @EDATE VARCHAR(10) --结束时间
DECLARE @MAX_DIFF INT --最大允许误差的天数
SET @SDATE='2014-08-15'
SET @EDATE='2014-10-14'
SET @MAX_DIFF=2 --根据楼主客户的需求,暂定最大误差天数为2
SELECT (CASE WHEN DATEDIFF(MONTH,@SDATE,DATEADD(DAY,@MAX_DIFF,@EDATE))>DATEDIFF(MONTH,@SDATE,@EDATE) THEN DATEDIFF(MONTH,@SDATE,@EDATE)+1 ELSE DATEDIFF(MONTH,@SDATE,@EDATE) END)
很简单,上面这条语句可以搞定,你要让客户确定,最大允许误差天数。这样就可以