一直把MM和mm混淆,不认真的后果就是一直糊里糊涂,到用的时候就选择不定。引以为戒。
1、java区分大小写,所以MM和小mm可以分别代表月份和分钟
通常格式如下:年月日 时分秒 yyyy-MM-dd hh:mm:ss
2、oracle不区分大小写,MM和mm被认为是相同的格式代码
通常格式如下:年月日 时分秒 yyyy-mm-dd hh:mi:ss/yyyy-mm-dd hh24:mi:ss
3、oracle常用方法
1.to_char
功能:将时间转化为字符串
如:select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual
--返回当前时间年月日小时分秒毫秒
select to_char(current_timestamp(5),'DD-MON-YYYY HH24:MI:SSxFF') from dual;
--返回当前时间的秒毫秒,可以指定秒后面的精度(最大=9)
select to_char(current_timestamp(9),'MI:SSxFF') from dual;
2.to_date
功能:将字符创转化为时间
如:select to_date('2011-11-06 13:12:11', 'yyyy-mm-dd hh24:mi:ss') from dual
3.date
功能:将字符串转化成日期
如:select date'2011-11-08' from dual
4.trunc
trunc(date)
如: select trunc(sysdate) from dual
trunc(sysdate,'yyyy');//返回当前年的第一天
trunc(sysdate, 'mm');//返回当前月的第一天
trunc(sysdate, 'dd');//返回当前时间的年月日
trunc(sysdate, 'd');//返回当前星期的第一天
trunc(sysdate, 'hh');//返回当前小时
trunc(number)
trunc(55.5,-1) = 50;//-1(负数)表示从小数点左边第一位截取后面全置为零;
trunc(55.55,1) = 55.5;//1(正数)表示小数点后面保留一位;
trunc(55.55) = 55;//截取整数部分;
5.sysdate
功能:获取当前时间
如: select sysdate from dual
6.interval
interval表示某段时间,格式是: interval '时间' <day/hour/minute/second> ;
eg: select sysdate - interval '10' day as "10天前",
interval '10' day 表示10天
ps:一般能用小写的就不用大写