ELF的ORACLE笔记(二)

接上一篇

三、Oracle中的时间类型

在日常的简单使用中,对于时间字段的操作比较多,一定会遇到需要删改查特定时间范围的数据,所以对时间字段先来了解一下

1、在Oracle中存储时间的格式不同,分为:

1)Char字符类型存储的时间,存储的只为日期。


如果要查询的时间为Char类型可以直接将条件写成

A. Where PLAT_DATE between '20170110' and '20170120';

B.  Where PLAT_DATE> '20170101';

2)date日期类型存储的时间

存储的日期时间精确到秒。如果要区分哪一个事件先发生,有的时候精确到秒也无法判断,因此在Date数据类型上扩展出来了TIMESTAMP数据类型。

查询date类型条件语句可以下成一下几种情况:

A.   wherecreate_time > to_date('20190529','yyyymmdd');

B.   where create_time between  to_date('20190110','yyyymmdd') and to_date('20190120','yyyymmdd');

C.  where to_char(create_time,'yyyymmdd')

between '20190110' and '20190120';

D.  where create_time > = to_date('20190529','yyyymmdd')

and create_time

3) TIMESTAMP时间戳数据类型

存储的数据包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息。

同date类型,转换成同一个字段类型才能进行比较

2、查询结果中的时间字段样式可以自己定义,如下

select create_time from tablename where create_time > =to_date('20190529','yyyymmdd');

select to_char(create_time,'yyyy-mm-dd') as c_time from tablename

where create_time > =to_date('20190529','yyyymmdd');

select to_char(create_time,'yyyy-mm-dd HH24:MI:SS') as c_time from tablename

where create_time > =to_date('20190529','yyyymmdd')

3、时间进行分组、排序、统计数量。

select to_char(create_time,'yyyy-mm-dd HH24:MI:SS') asc_time,

count(1) as date_num –统计数据量

from  tablename

where create_time > =to_date('20190529','yyyymmdd')

group by to_char(create_time,'yyyy-mm-dd HH24:MI:SS') –时间分组

order by to_char(create_time,'yyyy-mm-dd HH24:MI:SS')

你可能感兴趣的:(ELF的ORACLE笔记(二))