Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从年初到最后一天结束的一个月前的哪一天?_Sql_Oracle - Fatal编程技术网

Sql 从年初到最后一天结束的一个月前的哪一天?

Sql 从年初到最后一天结束的一个月前的哪一天?,sql,oracle,Sql,Oracle,我对我的问题有疑问。我不知道如何计算日期的数据。我想显示从前一个月到前一个月的日期 比如今年。从1月至9月,不包括本月。我有这个问题 and mhn.trh_masuk between add_months(Last_day(sysdate) + 1, -10) and add_months(Last_day(sysdate) + 0, -2) 这是我的oracle sql: select DISTINCT count(mhn.id_mohon) ide, add_months(Last_da

我对我的问题有疑问。我不知道如何计算日期的数据。我想显示从前一个月到前一个月的日期

比如今年。从1月至9月,不包括本月。我有这个问题

and mhn.trh_masuk between add_months(Last_day(sysdate) + 1, -10) and add_months(Last_day(sysdate) + 0, -2)
这是我的oracle sql:

select DISTINCT
count(mhn.id_mohon) ide,
add_months(Last_day(sysdate)+1,-10) datejan,
add_months(Last_day(sysdate)+0,-2) onemonthbeforenow,
ku.nama u4
from
mohon mhn, kod_urusan ku, kod_caw kc
where
 mhn.kod_urusan = ku.kod(+)
and mhn.kod_caw = kc.kod(+)
AND KU.AKTIF = 'Y'
AND KU.KOD_JABATAN= 2
and mhn.trh_masuk between add_months(Last_day(sysdate)+1,-10) and add_months(Last_day(sysdate)+0,-2)
and (mhn.kod_caw = :p_kod_caw or :p_kod_caw is null)
and (mhn.kod_urusan in ('PBMT','PBMMK'))    
group by ku.nama
有人知道这个解决方案的其他公式吗?

试试这个

AND mhn.trh_masuk BETWEEN trunc(SYSDATE,'YEAR') AND last_day(add_months(TRUNC(SYSDATE), -1)) + .99999

那么,您需要从年初到上个月最后一天的数据吗?是的@Ramblin'Man,您知道怎么做吗?
TRUNC(last_day(add_months(SYSDATE,-1))
将给出2013年9月30日00:00:00。因此,不会选择最后一天的记录。@Ramblin'Man,感谢您指出这个问题,我已经修改了答案。@dba,tq非常感谢。您的答案非常有用。:)您可以更优雅地使用:“