Oracle默认使用二进制排序,要排序的字符串从左到右读取,并且每个字符都被简化为他的ASCII数字。这种排序方法适用于美国英语,对于其他语言,则有可能不正确。
2.2 Locale Builder
Locale Builder是个图形化的工具,他能通过为语言、地区、字符集以及语言排序生成定义来创建自定义的全球化环境。
2.3 使用时区
为了实现业务必须在多个时区之间正常运转的功能,需要指定数据库所运作的时区以及使用TIMESTAMP WITH TIME ZONE与TIMESTAMP WITH LOCAL TIME ZONE数据类型。
实验:调整时区
--1.sqlplus连接到实例
--2.确定数据库时区
select property_value from database_properties where property_name=
'DBTIMEZONE';
PROPERTY_VALUE
------------------------------------------------------------------------------------------------------------------------
00:
00
--3.创建表
create
table times
(date_std date,
date_tz timestamp with time zone,
date_ltz timestamp with
local time zone);
--4.查看支持的所有时区:
select * from v$timezone_names;
--5.将会话时区调整为某个不同于数据库时区的时区
--将会话时区设定为美国夏威夷:
alter session set time_zone=
'US/Hawaii';
--6.调整会话的时区/时间格式
alter session set nls_timestamp_tz_format=
'YYYY-MM-DD HH24:MI:SS TZD';
alter session set nls_timestamp_format=
'YYYY-MM-DD HH24:MI:SS';
alter session set nls_date_format=
'YYYY-MM-DD HH24:MI:SS';
--7.表中插入一条记录
insert into times values(
'2016-02-03 15:00:00',
'2016-02-03 15:00:00',
'2016-02-03 15:00:00');
commit;
--8.查看时间
select * from times;
SQL>
select * from times;
DATE_STD
DATE_TZ
DATE_LTZ
------------------- -------------------------------------------------- ---------------------------------------------------------------------------
2016-02-03 15:
00:
00 2016-02-03 15:
00:
00 HST
2016-02-03 15:
00:
00
--9.会话切换至数据库时区:
alter session set time_zone=DBTIMEZONE;
--10.再次查看时间,发现timestamp with local time zone数据类型对应的时间自动调整了
select * from times;
SQL>
select * from times;
DATE_STD
DATE_TZ
DATE_LTZ
------------------- -------------------------------------------------- ---------------------------------------------------------------------------
2016-02-03 15:
00:
00 2016-02-03 15:
00:
00 HST
2016-02-04 01:
00:
00