我在一个金融项目中工作,我需要计算欠款天数的差额。如果我使用mysql的datediff()方法,那么它将返回基于365天的结果。我需要360天的结果。如果使用以下sql查询
select datediff('20140908','20130908') from dual;mysql返回日期差异365。这是实际的日期差异,但在会计/财务计算中,差异恰好是一年(360天)。这就是我想要的。结果应该是360而不是365。目前我想使用美国标准。
发布于 2018-02-20 19:39:44
为了得到与Excel相同的结果,我在MySQL中找到了以下代码:
select case
when (day(Startdate)>=30 or Startdate=last_day(Startdate) then
case
when(day(Enddate)>=30) then
30*(12*(year(Enddate)-year(Startdate))+month(Enddate)-month(Startdate))
else
30*(12*(year(Enddate)-year(Startdate))+month(Enddate)-month(Startdate))+days(Enddate)-30
end
else
30*(12*(year(Enddate)-year(Startdate))+month(Enddate)-month(Startdate))+days(Enddate)-days(Startdate)
end发布于 2014-09-08 16:00:11
使用
TO_DAYS(date2) - To_DAYS(date1)它返回date1和date2之间的天数。然后,您可以对结果执行所需的操作。
发布于 2018-11-17 00:28:39
日期=起始日期编辑=终止日期
计算两个日期之间的天数,考虑到一个月是30天,一年是360天,并检查日期是否在月底,例如从1.1.2019到28.2.2019 = 60天等。
对于1个月或1年,更新日期应在前一天,因此1.1 - 31.1 = 30天,1.1 - 1.2 = 31天
SELECT最大( 0,(年(DATE_ADD(编辑,间隔1天))-年(日期))* 360 +(月(DATE_ADD(编辑,间隔1天))-月(日期))* 30 +(IF(日期)(DATE_ADD(编辑,间隔1天)=DAYOFMONTH(LAST_DAY(DATE_ADD(编辑,间隔1天)),30,DAYOFMONTH(DATE_ADD(edate,间隔1天))-IF(DAYOFMONTH(日期)=DAYOFMONTH(LAST_DAY(日期)),30,DAYOFMONTH(日期) )
https://stackoverflow.com/questions/25719478
复制相似问题