1.首先是日期转化的两种格式,一般用第二种多吧。
to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错。即按照第二个参数的格式解释第一个参数。
to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。
取系统当前时间 并转化成 yyyy-mm-dd(年月日格式)
to_char(sysdate,'yyyy-mm-dd')
to_char(last_day(add_months(sysdate,-1)),'yyyy-mm-dd')
根据系统当前时间,取到上个月月初(上个月第一天) 并转化
to_char((LAST_DAY(ADD_MONTHS(SYSDATE, -2)) + 1,'yyyy-mm-dd')
3.dual是oracle中的伪表。
具体含义:Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中
根据系统当前时间 取上一个月 并转化
select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;
根据系统当前时间 取下一个月 并转化
select to_char(add_months(trunc(sysdate),1),'yyyymm') from dual;
4.TRUNC函数为指定元素而截去的日期值。
函数方法:TRUNC(date,[fmt])
date:代表日期, fmt:代表日期格式
trunc(sysdate,'yyyy') --返回当年第一天。 2017-01-01
trunc(sysdate,'mm') --返回当月第一天。 2017-07-01
trunc(sysdate,'d') --返回当前星期的第一天。2017-07-17
trunc(sysdate,'dd')--返回当前年月日 2017-07-19
trunc (sysdate, 'hh') -- 返回当前时间 小时 2017-07-19 10:00:00 当前时间为 10点11分
trunc (sysdate, 'mi') -- 返回当前时间 分钟 2017-07-19 10:11:00 trunc函数不精确到秒
to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错。即按照第二个参数的格式解释第一个参数。
to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。
取系统当前时间 并转化成 yyyy-mm-dd(年月日格式)
to_char(sysdate,'yyyy-mm-dd')
2.下面要用到add_months()函数 负数:代表往前 正数:代表往后。
根据系统当前时间,取到上个月月底(上个月最后一天)并转化to_char(last_day(add_months(sysdate,-1)),'yyyy-mm-dd')
根据系统当前时间,取到上个月月初(上个月第一天) 并转化
to_char((LAST_DAY(ADD_MONTHS(SYSDATE, -2)) + 1,'yyyy-mm-dd')
3.dual是oracle中的伪表。
具体含义:Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中
根据系统当前时间 取上一个月 并转化
select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;
根据系统当前时间 取下一个月 并转化
select to_char(add_months(trunc(sysdate),1),'yyyymm') from dual;
4.TRUNC函数为指定元素而截去的日期值。
函数方法:TRUNC(date,[fmt])
date:代表日期, fmt:代表日期格式
trunc(sysdate,'yyyy') --返回当年第一天。 2017-01-01
trunc(sysdate,'mm') --返回当月第一天。 2017-07-01
trunc(sysdate,'d') --返回当前星期的第一天。2017-07-17
trunc(sysdate,'dd')--返回当前年月日 2017-07-19
trunc (sysdate, 'hh') -- 返回当前时间 小时 2017-07-19 10:00:00 当前时间为 10点11分
trunc (sysdate, 'mi') -- 返回当前时间 分钟 2017-07-19 10:11:00 trunc函数不精确到秒