1.to_char(参数,格式)
(1) 把Date数据转为特定输出型的字符串
- select unitcode,to_char(mydate,‘yyyy-MM-dd HH24:mi:ss’) from t_table;
(2) 处理数字型数据(9相当于通配符)
- select to_char(price,‘999.999’) from t_table;
//这个得根据具体数据判断,如果你的数据整数位不超过3位,则显示正常;不满3位的,就正常显示它的位数,如果超过3位了,就会报错,全用#代替了。例如:24.3按照格式最终显示为24.300;9884.60这个显示是#####;所以使用时,9的个数应该是所有行该列数据整数位最多位的值。 - select to_char(price,‘9099.999’) from t_table;
//上面那个24.3如果想让他显示为024.300,也就是整数位全部统一,不满足的一律补0,就得写成这种形式,很好理解,999.999这种格式如果整数位不足3位,其实前面是有0的,但是省略了(24和024和0024都一样),现在要强制它显示出来,就得告诉它,在0的前面还有数字。 - select to_char(price,’$999,999.999’) from t_table;
2.add_months(日期,月数量)
最终值是 日期+月数量,数据类型也是Date型。一般月数量为负数,举个例子:
从employ表查询列出来公司就职时间超过24年的员工名单,但是表中只有就职起始日期,所以需要用到这个函数了。
select name, startdate from employ
where startdate <= add_months(sysdate, -288);(288是24*12,结果就是当前时间-288,也就是24年前的时间。)
3.to_date(时间格式字符串,匹配规则)
to_date(‘2019-08-27 11:30:56’,‘yyyy-mm-dd hh24:mi:ss’)
注意:to_date是类型转换,字符串和后面的格式要匹配;to_char才是转成对应格式。
4.last_day(日期)
查询该日期的所在月份的最后一天,并返回该日期。
5.with …as…
with temp2 as (select unitcode,unitname from t_t2) select unitcode from temp2;
就是临时建立一张表在内存中,在其后的sql语句可以使用它。