当前位置: 代码迷 >> Sql Server >> 少一天的有关问题-关于SQL日期计算的麻烦应用
  详细解决方案

少一天的有关问题-关于SQL日期计算的麻烦应用

热度:18   发布时间:2016-04-24 09:33:07.0
求助少一天的问题-----------关于SQL日期计算的麻烦应用
是这样的,客户的一个日期计算,他们的月数,总是少一天的,但我得出的结果总是要么多要么少,怎么办?

比如:
客户说的,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)


很简单,上面这条语句可以搞定,你要让客户确定,最大允许误差天数。这样就可以
  相关解决方案