首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Vertica的date与timestamp数据类型,to_date()与to_timestamp()函数区别

Vertica的date与timestamp数据类型,to_date()与to_timestamp()函数区别

作者头像
Alfred Zhao
发布于 2019-05-24 20:28:34
发布于 2019-05-24 20:28:34
3.6K0
举报

实验环境:3节点,RHEL6.4 + Vertica 7.0.1

实验目的:了解Vertica数据库的date与timestamp数据类型,to_date()与to_timestamp()函数区别

构造的实验表中只有10条记录。

1.查询表记录数据如下:

代码语言:javascript
复制
irnop=> select start_time from perf_rnc_w_3;
     start_time     
---------------------
2014-05-26 01:00:00
2014-05-26 01:00:00
2014-05-26 01:00:00
2014-05-26 01:00:00
2014-05-26 01:00:00
2014-05-26 01:00:00
2014-05-26 01:00:00
2014-05-26 01:00:00
2014-05-26 01:00:00
2014-05-26 01:00:00
(10 rows)

2.实验过程:

2.1用to_date()查询5.26号0点~23点间的记录数,结果不是预期的结果,是0条:

代码语言:javascript
复制
irnop=> select count(*) from perf_rnc_w_3 where start_time >= to_date('2014-05-26 00:00:00','yyyy-MM-dd hh24:mi:ss')
irnop-> and start_time <to_date('2014-05-26 23:00:00','yyyy-MM-dd hh24:mi:ss');
count
-------
     0
(1 row)
irnop=>

2.2用to_timestamp()查询5.26号0点~23点间的记录数,结果正确显示为10条:

代码语言:javascript
复制
irnop=> select count(*) from perf_rnc_w_3 where start_time >= to_timestamp('2014-05-26 00:00:00','yyyy-MM-dd hh24:mi:ss')
irnop-> and start_time <to_timestamp('2014-05-26 23:00:00','yyyy-MM-dd hh24:mi:ss');
count
-------
     10
(1 row)

2.3用to_timestamp()查询5.26号2点及以后的记录数,实际是没有符合条件数据的,结果正确显示为0条:

代码语言:javascript
复制
irnop=> select count(*) from perf_rnc_w_3 where start_time >= to_timestamp('2014-05-26 02:00:00','yyyy-MM-dd hh24:mi:ss');
count
-------
     0
(1 row)

2.4用to_date()查询5.26号2点及以后的记录数,实际是没有符合条件数据的,但结果此时却是10条:

代码语言:javascript
复制
irnop=> select count(*) from perf_rnc_w_3 where start_time >= to_date('2014-05-26 02:00:00','yyyy-MM-dd hh24:mi:ss');
count
-------
     10
(1 row)

3.总结:

vertica时间类型为date的不精确到小时\分\秒,

如果需要,定义的时间数据类型必须为timestamp。 同样,查询,vertica的to_date()函数不精确到小时\分\秒, 如果需要,需要用to_timestamp()函数。

4.延伸:

oracle数据库的date包括精确到时分秒,所以在oracle—>vertica迁移场景中,建议将oracle的date数据类型修改为vertica的timestamp。

网络搜索到vertica date和timestamp的数据类型介绍:

代码语言:javascript
复制
DATE 8 Represents a month, day, and year
TIMESTAMP 8 Represents a date and time without timezone

更多vertica数据类型介绍参见:http://www.cnblogs.com/jyzhao/articles/3778948.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-06-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档