java和oracle时间格式的区别

一直把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:一般能用小写的就不用大写

原文地址:https://www.cnblogs.com/jzhxhs/p/9328790.html