oracel 中关于时间日期的取值和转化

1.首先是日期转化的两种格式,一般用第二种多吧。
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函数不精确到秒




你可能感兴趣的:(oracle,数据库基本语句)