-- 学习oracle函数
select sysdate from dual;
select current_timestamp from dual;
-- oracle里面,日期的默认格式是“这个月的第几天-月份(英文)-年份的后两位”
select to_char(sysdate , 'yyyy-mm-dd hh24:mi:ss') from dual; -- 格式化日期
select to_date('2018-01-01' , 'yyyy-mm-dd') from dual; -- 将字符串转换成日期
-- 将字符串转换成数字,作用刚好和to_char是相反的
select to_number('20080105') as year from dual;
-- 给日期加两个月,减两个月的话就加负数
select to_char(add_months(sysdate , 2) , 'yyyy-mm-dd hh:mi:ss') from dual;
-- 返回日期中指定月份的最后一天
select last_day('2017-10-01') from dual; -- 这样子写是会报错的
-- 这样子写才行,因为last_day这个方法对于你输入的日期格式是有要求的,必须要转换成oracle默认的日期格式才行
select last_day(to_date('2017-10-01' , 'yyyy-mm-dd')) from dual;
-- 计算两个日期之间相差几个月
select months_between(sysdate , add_months(sysdate , 4)) from dual;
-- 返回下个星期二是哪一天
-- oracle很有意思,他是这样对应的:星期日 = 1 星期一 = 2 星期二 = 3 星期三 = 4 星期四 = 5 星期五 = 6 星期六 = 7
select next_day(sysdate , 3) from dual;
-- 返回日期/时间的单独部分:year、month、day、hour、minute、second
select extract(year from sysdate) from dual;
select extract(month from sysdate) from dual;
-- 数字函数
-- 返回x的绝对值
select abs(-10) from dual;
-- 返回大于等于x的最小整数值
select ceil(-7.5) from dual;
-- 返回小于等于x的最小整数值
select floor(-7.5) from dual;
-- 返回x的y次幂
select power(3.14 , 7) from dual;
-- 返回x除以y的余数
select mod(3 , 7) from dual;
-- 返回四舍五入后的值
-- y值为正数,就代表小数点右边保留几位;y为负,就代表小数点之前y位变成0,相应的整数数字用0填充,小数被去掉
select round(12315.54256 , 2) from dual;
-- trunc和round其实没什么区别,只是trunc不做四舍五入而已
select trunc(21314.52834 , 2) from dual;
-- 字符函数
-- 将数字转换成字符
select chr(58) from dual;
-- 将字符转换成数字
select ascii('a') from dual;
-- 连接字符串,concat这个函数只能放两个参数,再多就会报错了,如果想再加参数只能用“ || ”连接符
select concat('so' , 'rry' || ', my love') from dual;
select sysdate from dual;
select current_timestamp from dual;
-- oracle里面,日期的默认格式是“这个月的第几天-月份(英文)-年份的后两位”
select to_char(sysdate , 'yyyy-mm-dd hh24:mi:ss') from dual; -- 格式化日期
select to_date('2018-01-01' , 'yyyy-mm-dd') from dual; -- 将字符串转换成日期
-- 将字符串转换成数字,作用刚好和to_char是相反的
select to_number('20080105') as year from dual;
-- 给日期加两个月,减两个月的话就加负数
select to_char(add_months(sysdate , 2) , 'yyyy-mm-dd hh:mi:ss') from dual;
-- 返回日期中指定月份的最后一天
select last_day('2017-10-01') from dual; -- 这样子写是会报错的
-- 这样子写才行,因为last_day这个方法对于你输入的日期格式是有要求的,必须要转换成oracle默认的日期格式才行
select last_day(to_date('2017-10-01' , 'yyyy-mm-dd')) from dual;
-- 计算两个日期之间相差几个月
select months_between(sysdate , add_months(sysdate , 4)) from dual;
-- 返回下个星期二是哪一天
-- oracle很有意思,他是这样对应的:星期日 = 1 星期一 = 2 星期二 = 3 星期三 = 4 星期四 = 5 星期五 = 6 星期六 = 7
select next_day(sysdate , 3) from dual;
-- 返回日期/时间的单独部分:year、month、day、hour、minute、second
select extract(year from sysdate) from dual;
select extract(month from sysdate) from dual;
-- 数字函数
-- 返回x的绝对值
select abs(-10) from dual;
-- 返回大于等于x的最小整数值
select ceil(-7.5) from dual;
-- 返回小于等于x的最小整数值
select floor(-7.5) from dual;
-- 返回x的y次幂
select power(3.14 , 7) from dual;
-- 返回x除以y的余数
select mod(3 , 7) from dual;
-- 返回四舍五入后的值
-- y值为正数,就代表小数点右边保留几位;y为负,就代表小数点之前y位变成0,相应的整数数字用0填充,小数被去掉
select round(12315.54256 , 2) from dual;
-- trunc和round其实没什么区别,只是trunc不做四舍五入而已
select trunc(21314.52834 , 2) from dual;
-- 字符函数
-- 将数字转换成字符
select chr(58) from dual;
-- 将字符转换成数字
select ascii('a') from dual;
-- 连接字符串,concat这个函数只能放两个参数,再多就会报错了,如果想再加参数只能用“ || ”连接符
select concat('so' , 'rry' || ', my love') from dual;