设为首页 加入收藏

TOP

SQL函数之日期函数
2014-11-23 19:02:41 来源: 作者: 【 】 浏览:39
Tags:SQL 函数 日期

1. 使用 TO_CHAR() 和 TO_DATE() 转换时间值

TO_CHAR(x[,format]) 将x转换为字符串,该函数还可以为x提供可选参数format

TO_DATE(x[,format]) 将字符串x转换为DATE类型,该函数也提供了可选参数format

\

1.1 使用TO_CHAR() 将时间值转换为字符串< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+c2VsZWN0IHRvX2NoYXIoc3lzZGF0ZSw="MONTH DD,YYYY,HH24:MI:SS') from dual;

1.2 使用TO_DATE() 将字符串转换为时间值

select to_date('04,JUL-2014'),to_date('04-JUL-12') from dual; --(未指定格式,采用默认日期格式)

select to_date('2014-09-13','YYYY-MM-DD') from dual; (正确)

select to_date('2014-09-13','Y-MM-DD') from dual; (错误)

故:FORMAT的作用是用于格式化传递的字符串。

select to_date('11.1.14','MM.DD.YY') from dual;

2. Oracle 对年份的处理

注:应该始终使用完整的4位年份,这样,就不会对到底指哪一年产生混淆

3. 使用时间值函数

\

4. 使用时区

时区是当地时间与英格兰格林威治时间的时差(UTC)

时间也可以使用地理区域来指定,例如,PST 表示太平洋标准时间,它比UTC 晚8个小时

4.1 与时区有关的函数

\

4.2 将时间值从一个时区转换为另一个时区

select to_char(NEW_TIME(to_date("25-MAY-2012 19:45'),'DD-MON-YYYY HH24:MI'),'PST','EST'),

'DD-MON-YYYY HH24:MI') from dual;

5. 使用时间戳

\

TIMESTAMP "YYYY-MM-DD HH24:MI:SS.SSSSSSSSS'

6. 与时间戳有关的函数

\

select current_timestamp,localtimestamp,systimestamp from dual;

7. 使用时间间隔

注:时间间隔记录的是一段时间长度(例如1年零3个月),而时间值或时间戳记录的是特定的日期

和时间(例如2006年10月28日下午7点32分16秒)

\

7.1 使用INTERVAL YEAR TO MONTH 类型

CRATE TABLE coupons(

coupon_id INTEGER CONSTARINT coupons_pk PRIMARY KEY,

name VARCHAR2(30) NOT NULL,

duration INTERVAL YEAR(3) TO MONTH

);

要向数据库提供INTERVAL YEAR TO MONTH 字面值,可以使用下面的简化语法:

INTERVAL "[+|-][y][-m]' [YEAR[(years_precision)]] [TO MONTH]

\

7.2 使用INTERVAL DAY TO SECOND 类型

CREATE TABLE promotions

(

promotion_id INTEGER CONSTRAINT promotions_pk PRIMARY KEY,

name VARCHAR2(30) NOT NULL,

duration INTERVAL DAY(5) TO SECOND(4)

);

要向数据库提供INTERVAL DAY TO SECOND 字面值,可以使用下面的简化语法:

INTERVAL "[+|-][d] [h[:m[:s]]]' [DAY[(days_precision]]

[TO HOUR | TO_MINUTE | SECOND[(seconds_precision)]]

\

7. 与时间间隔有关的函数

\

7.1 NUMTODSINTERVAL()

SELECT NUMTODSINTERVAL(1.5,"DAY'),

NUMTODSINTERVAL(3.25,'HOUR'),

NUMTODSINTERVAL(5,'MINUTE'),

NUMTODSINTERVAL(10.12345,'SECOND')

FROM DUAL;

7.2 NUMTOYMINTERVAL()

SELECT NUMTOYMINTERVAL(1.5,'YEAR'),

NUMTOYMINTERVAL(3.25,'MONTH'),

NUMTOYMINTERVAL(3.7,'MONTH') ==> (四舍五入对月份)

FROM DUAL;

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL中EXISTS的用法 下一篇基本SQL语句操作数据增删查改

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: