select sysdate,add_months(sysdate,-12),to_char(trunc(add_months(sysdate,-12)),'yyyy-mm-dd')||' 00:00:00' from dual;
在最近的一个项目中,有一个需求就是要查询
数据库
中
前
几个月的历史数据,但是由于自己考虑不全面造成了程序的bug,现在将这一块好好作一个总结,希望以后不再犯这种很低级的错误,首先贴出查询中用到的一个子函数,然后就此作出详细的分析:
private string AddMonths(string originalTime, int months)
--
oracle
监控,可以查看执行过的
SQL
语句
SELECT
SQL
_TEXT, LAST_ACTIVE_TIME,
SQL
_FULLTEXT FROM v$
sql
ORDER BY LAST_ACTIVE_TIME DESC
--另外 PL/
SQL
Developer中Ctrl+E可以重新调出历史
SQL
记录,历史记录文件默认保存在 AppData\Roam...
DATE_FORMAT( CURDATE(), '%Y-%m' ) AS MONTH UNION
SELECT
DATE_FORMAT(( CURDATE() - INTERVAL 1 MONTH ), '%Y-%m' ) AS MONTH UNION
SELECT
DATE_FORMAT(( CURDATE() - INTERVAL 2 MONTH ), '%Y-%m' ) AS MONTH UNION
SELECT
DATE_FORMAT(( CURDATE() -
根据当
前
时间获取最近5年时间:(yyyy)
SELECT to_char(SYSDATE,'YYYY') - LEVEL + 1 as "xAxisValue"
FROM dual
CONNECT BY LEVEL
ORDER BY to_char(SYSDATE,'YYYY') - LEVEL + 1 ASC
根据当
前
时间获取最近6个月时间(yyyy-mm):
SELECT
select to_char(t, 'yyyymm') a, to_char(t, 'yyyy-mm') b, to_char(t, 'dd') c
from (
select decode(level,