10 个解决方案
#1
你的360天 是怎么定义的呢。
#2
用datediff是按365天算。现在我就是不懂怎么按360天来算
#3
datediff--按日期真实天数计算,而不是你自定义的 1年=360天?
#4
我知道。现在就想取两个日期之间的天数,按每月30天来计算。
#5
那有些特例要怎么计算?如2月28日,或是10月31日。
#6
-- 这个意思 ?
select 95 * 360 / 365 c1, 95.0 * 360 / 365 c2
c1 c2
----------- ---------------------------------------
93 93.698630
(1 行受影响)
#7
-- 这个意思 ?
select 95 * 360 / 365 c1, 95.0 * 360 / 365 c2
c1 c2
----------- ---------------------------------------
93 93.698630
(1 行受影响)
不是,我是要两个日期之间的天数,每月按30天计算。
#8
我自已解决了,写了个日期函数,碰到有31天的减1,28天的加2,这样就保证是按一年360天计算了。结贴
#9
你是说每个月按照固定30天算吧?
可以先算出两个日期间隔的整数月,乘以30,然后加加上剩余天数。
可以先算出两个日期间隔的整数月,乘以30,然后加加上剩余天数。
DECLARE @StartDate DATETIME='2016-08-15',@EndDate DATETIME='2016-11-18'
SELECT datediff(m,@StartDate,@EndDate)*30+ datediff(d,DATEADD(m,datediff(m,@StartDate,@EndDate),@StartDate),@EndDate)
--93
#10
你是说每个月按照固定30天算吧?
可以先算出两个日期间隔的整数月,乘以30,然后加加上剩余天数。
DECLARE @StartDate DATETIME='2016-08-15',@EndDate DATETIME='2016-11-18'
SELECT datediff(m,@StartDate,@EndDate)*30+ datediff(d,DATEADD(m,datediff(m,@StartDate,@EndDate),@StartDate),@EndDate)
--93
历害了。就是这样,我是自己用了个笨办法。非常感谢!
#1
你的360天 是怎么定义的呢。
#2
用datediff是按365天算。现在我就是不懂怎么按360天来算
#3
datediff--按日期真实天数计算,而不是你自定义的 1年=360天?
#4
datediff--按日期真实天数计算,而不是你自定义的 1年=360天?
我知道。现在就想取两个日期之间的天数,按每月30天来计算。
#5
datediff--按日期真实天数计算,而不是你自定义的 1年=360天?
我知道。现在就想取两个日期之间的天数,按每月30天来计算。
那有些特例要怎么计算?如2月28日,或是10月31日。
#6
-- 这个意思 ?
select 95 * 360 / 365 c1, 95.0 * 360 / 365 c2
c1 c2
----------- ---------------------------------------
93 93.698630
(1 行受影响)
#7
-- 这个意思 ?
select 95 * 360 / 365 c1, 95.0 * 360 / 365 c2
c1 c2
----------- ---------------------------------------
93 93.698630
(1 行受影响)
不是,我是要两个日期之间的天数,每月按30天计算。
#8
我自已解决了,写了个日期函数,碰到有31天的减1,28天的加2,这样就保证是按一年360天计算了。结贴
#9
你是说每个月按照固定30天算吧?
可以先算出两个日期间隔的整数月,乘以30,然后加加上剩余天数。
可以先算出两个日期间隔的整数月,乘以30,然后加加上剩余天数。
DECLARE @StartDate DATETIME='2016-08-15',@EndDate DATETIME='2016-11-18'
SELECT datediff(m,@StartDate,@EndDate)*30+ datediff(d,DATEADD(m,datediff(m,@StartDate,@EndDate),@StartDate),@EndDate)
--93
#10
你是说每个月按照固定30天算吧?
可以先算出两个日期间隔的整数月,乘以30,然后加加上剩余天数。
DECLARE @StartDate DATETIME='2016-08-15',@EndDate DATETIME='2016-11-18'
SELECT datediff(m,@StartDate,@EndDate)*30+ datediff(d,DATEADD(m,datediff(m,@StartDate,@EndDate),@StartDate),@EndDate)
--93
历害了。就是这样,我是自己用了个笨办法。非常感谢!