2017-09-21 74 views
0

嗨,我对Oracle很新。我想计算一个月完成的百分比。我知道这将是当天除以该月的最后一天,但我不知道如何在Oracle中的SQL中编写该文件Oracle SQL月完成百分比公式

因此,今天它将是自9月21日以来的21/30并且该月有30天。一个月完成的百分比是70%,这就是我想在oracle中得到

+0

请提供您的表(S)结构与样本数据一起和期望的输出。 –

+0

你是什么意思?完成百分比,直到今天几点?你的计算(21/30)直到今天的午夜,是你需要的吗?即使在今天(上午)结束时的午夜时间? – mathguy

回答

3

试试这个:

SELECT (extract(day from SYSDATE)/ 
      extract(day from LAST_DAY(SYSDATE)))* 100 
    FROM dual; 

Here is a good overview

+0

请注意我对OP的评论。如果SYSDATE在2017年9月21日00:00以24小时制表示,则计算将返回21/30。这有点奇怪,因为当时正好20天过去了,而不是21. – mathguy

+0

所以我们可以trunc(sysdate) – OldProgrammer

+0

需要添加四舍五入到计算公式'SELECT round((extract(day from SYSDATE + 1)/ 摘录(从LAST_DAY(SYSDATE)开始的日期))* 100) FROM dual;' –