导航

Greenplum数据库时间操作汇总

Posted on 2020-06-16 22:18  水木山川  阅读(3604)  评论(0编辑  收藏  举报

Greenplum数据库时间操作与mysql有一些区别,汇总以往笔记记录下来。

  • greenplum时间格式:'yyyy-mm-dd hh24:mi:ss.us'、'yyyy-mm-dd hh:mi:ss.us'、'YYYY-DD-MM HH24:MI:SS.us'  (与mysql有区别 '%Y-%m-%d %H:%i:%s' )
  • 时间转换(当前时间是:2020-06-16 21:59:46.796948+08)

  select extract(epoch from now());       -- 当前时间转时间戳:1592313871.21819

  select extract(epoch from cast('2020-06-16 12:15:28' as timestamp));    -- 指定时间转时间戳:1592280928

  select to_timestamp(1592280928);      -- 时间戳转日期:2020-06-16 12:32:08+08

  select to_char(now(),'yyyy-mm-dd hh:mi:ss.us');    -- 时间格式化(十二小时制):2020-06-16 09:27:46.623385

  select to_char(now(),'yyyy-mm-dd hh24:mi:ss.us');    --时间格式化(二十四小时制):2020-06-16 21:32:31.248214

  select now()::text;              --时间转字符串:2020-06-16 21:59:46.796948+08

  select substr(to_timestamp(1592313871218.19/1000)::text,0,20);      -- 时间戳转字符串:2020-06-16 21:24:31

  select current_timestamp;          --获取时间戳:2020-06-16 21:38:47.23874+08

  select now();                --获取当前时间:2020-06-16 21:38:47.23874+08

  select current_date;             --获取当前日期:2020-06-16

  select current_time;             -- 获取当前时间:21:41:17.270263+08

  select '2020-06-16'::timestamp;        --获取时间戳:2020-06-16 00:00:00

  select cast('2020-06-16' as timestamp);     --获取时间戳:2020-06-16 00:00:00

  select timestamp '2020-06-16 18:54:54';    --转换为时间戳:2020-06-16 18:54:54

  select to_date('20200616','yyyymmdd');    --转换字符串:2020-06-16

  select now() + interval '1 day' + interval '3 month' + interval '2 hour';  --日期加一天三个月两小时:2020-09-17 23:51:24.23632+08

  select date (now());              --获取当前日期:2020-06-16

  select now()::timestamp +'-2 year';        -- 两年前的时间:2018-06-16 21:58:20.716811

  select now()::timestamp + '1 year';        -- 当前时间加一年:2021-06-16 21:58:40.158335

  select now()::timestamp + '1 month';        -- 当前时间加一个月:2020-07-16 21:58:51.285984

  select now()::timestamp + '1 day';        -- 当前时间加一天:2020-06-17 21:59:02.155376

  select now()::timestamp + '1 hour';         --当前时间加一个小时:2020-06-16 23:00:30.322946

  select now()::timestamp + '1 min';         --当前时间加一分钟:2020-06-16 22:01:57.065112

  select now()::timestamp + '1 sec';         --当前时间加一秒钟:2020-06-16 22:01:13.33365

  select current_date - interval '1 day';        --昨天日期:2020-06-15 00:00:00

  select current_date - interval '1 month';      --上月当日时间:2020-05-16 00:00:00

  select current_date - interval '1 year';        --去年当日时间:2019-06-16 00:00:00

  select date_trunc('months',now())::date;      --当月第一天:2020-06-01

  select date_trunc('months',now())::date - interval '1 year';      --上年本月第一天:2019-06-01 00:00:00

  select date_trunc('months',current_date - interval '1 year')::date;    --去年本月第一天:2019-06-01

  select now()::timestamp + '1 year 1 month 1 day 1 hour 1 min 1 sec';   --加1年1月1天1时1分1秒:2021-07-17 23:06:24.52713

  select now()::timestamp + (col_name || ' day')::interval from table_name;   --把col字段转换成天 然后相加

  select timestamp without time zone '2020-06-16 22:09:47.078+08';     --去除时区:2020-06-16 22:09:47.078

  select extract(year from now());          --获取年份:2020

  select extract(month from now());         --获取月份:6

  select extract(day from now());          --获取天:16

 

作者:Jason Zeng 于 2020-05-14
博客:http://www.cnblogs.com/zengming/ 
GItHub:https://github.com/lovelifeming
严正声明:
1.由于本博客部分资源来自互联网,版权均归原作者所有。转载的目的是用于学术交流与讨论学习,将不对任何资源负法律责任。
2.若无意中侵犯到您的版权利益,请来信联系我,我会在收到信息后会尽快给予处理!
3.所有资源内容仅供学习交流之用,请勿用作商业用途,谢谢。
4.如有转发请注明出处,来源于http://www.cnblogs.com/zengming/,谢谢合作。