zoukankan      html  css  js  c++  java
  • Vertica的date与timestamp数据类型,to_date()与to_timestamp()函数区别

    实验环境:3节点,RHEL6.4 + Vertica 7.0.1
    实验目的:了解Vertica数据库的date与timestamp数据类型,to_date()与to_timestamp()函数区别
     
    构造的实验表中只有10条记录。
    1.查询表记录数据如下:
    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条:
    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条:
    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条:
    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条:
    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的数据类型介绍:
    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
  • 相关阅读:
    【CFD之道】2018年原创文章汇总
    【OpenFOAM案例】03 Docker安装OpenFOAM
    【OpenFOAM案例】02 自己动手
    【OpenFOAM案例】01 elbow
    Fluent动网格【13】:网格光顺总结及实例
    Fluent动网格【12】:扩散光顺
    Fluent动网格【10】:区域运动案例
    Fluent动网格【11】:弹簧光顺
    happyChat开发系列:使用websocket.io实现双向通信的乐聊大前端开发
    vue,vuex的后台管理项目架子structure-admin,后端服务nodejs
  • 原文地址:https://www.cnblogs.com/jyzhao/p/3766390.html
Copyright © 2011-2022 走看看