Date在Java和Oracle下的不同用法

Oracle中常用的日期函数:

Add_Months(d,n):d—日期;n—月数:给指定日期加上指定月数后的日期

Eg:select add_months(sysdate,2) from dual

Months_between(d1,d2):返回两个日期之间的月数

Eg

Last_day(d):返回指定日期当月的最后一天的日期

Eg:select last_day(sysdate) from dual

Next_day(d,day):返回指定日期下一个星期几的日期

Eg:      select next_day(sysdate,’星期三’) from dual;

      select next_day(sysdate,4) from dual;

extract(fmt from d):fmt—日期中的特定部分;d—日期:提取日期的特定部分

Eg:select extract(month from sysdate) from dual;

转换函数

To_char(d(n),fmt):转换为字符串格式:d—日期,n—为数字,fmt为指定日期或数字的格式

Egselect to_char(sysdate,'yyyyMMdd HH24:mi:ss') from dual(转换日期格式)

select to_char( 87686,'$9999999.999') from dual(转换数字,如:薪资)

to_date(str,fmt):将字符串转换为日期;str-字符串;fmt-转换格式

注意:Oralce默认日期格式为“DD-MON-YY”,不能识别“yyyy-mm-dd”格式,除非使用to_date()转换

Egselect to_date('20120501','yyyy-mm-dd') from dual;

附加:to_date(str,fmt) fmt的转换格式的注意:

一般采用yyyy-MM-dd HH:mm:ss的格式作为格式进行转换,但是在Oracle中会引起错误

Eg: select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
原因是SQL中不区分大小写,MMmm被认为是相同的格式代码,所以OracleSQL采用了mi代替分钟。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;

另要以24小时的形式显示出来要用HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份

Oracle中正确的format格式:

Localtimestamp : 返回回会话中的日期和时间

Eg:select localtimestamp from dual;

格式:

--------------------------了解--------------------------------

注:

Trunc()函数的用法:

/**************日期********************/
1.select trunc(sysdate) from dual  --2011-3-18  今天的日期为2011-3-18

2.select trunc(sysdate, 'mm')   from   dual  --2011-3-1    返回当月第一天.

3.select trunc(sysdate,'yy') from dual  --2011-1-1       返回当年第一天

4.select trunc(sysdate,'dd') from dual  --2011-3-18    返回当前年月日

5.select trunc(sysdate,'yyyy') from dual  --2011-1-1   返回当年第一天

6.select trunc(sysdate,'d') from dual  --2011-3-13 (星期天)返回当前星期的第一天

7.select trunc(sysdate, 'hh') from dual   --2011-3-18 14:00:00   当前时间为14:41  

8.select trunc(sysdate, 'mi') from dual  --2011-3-18 14:41:00   TRUNC()函数没有秒的精确

/***************数字********************/

/*

TRUNCnumber,num_digits

Number 需要截尾取整的数字。

Num_digits 用于指定取整精度的数字。Num_digits 的默认值为0

TRUNC()函数截取时不进行四舍五入

*/

9.select trunc(123.458) from dual –123

10.select trunc(123.458,0) from dual –123

11.select trunc(123.458,1) from dual --123.4

12.select trunc(123.458,-1) from dual –120

13.select trunc(123.458,-4) from dual –0

14.select trunc(123.458,4) from dual  --123.458

15.select trunc(123) from dual  --123

16.select trunc(123,1) from dual –123

17.select trunc(123,-1) from dual –120

Java中Date的用法和格式转换:

import java.text.SimpleDateFormat;

java中Date日期格式转换(SimpleDateFormat):

GMT(Greenwich Mean Time)代表格林尼治标准时间

CST却同时可以代表如下 4 个不同的时区:

Central Standard Time (USA) UT-6:00

Central Standard Time (Australia) UT+9:30

China Standard Time UT+8:00

Cuba Standard Time UT-4:00

可见,CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。

通过 Java 获取的CST时间用的是China Standard Time,而客户端JavaScript则默认采用的是美国的中部时间。

所以将 Fri Aug 28 09:37:46 CST 2009 加上 6 个小时,再加上 8 个小时,就等于 Fri Aug 28 2009 23:37:46 GMT+0800

可见,在以后的编程中为了避免错误,还是不要使用CST时间,而尽量采用GMT时间。中国的时间就是GMT时间+8小时

当日期格式为Sat May 12 00:00:00 CST 2012 类型时:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US); {第四种构造方法}

Date d=sdf.parse(StringUtil.notNull(itemMap.get("deliveryDate")));

sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");{第二种构造方法}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值