Postgresql之时间戳long,TimeStamp,Date,String互转方式


    目录
  • 时间戳long,TimeStamp,Date,String互转
  • 1.时间戳Long转Timestamp
  • 2.TimeStamp转时间戳Long
  • 4.String转Date 只能得到年月日
  • 5.TimeStamp 10位,13位 转String
  • 总结

    时间戳long,TimeStamp,Date,String互转
    今天遇到一个神奇的问题:
    Postgre数据库里存的 10位long类型的时间戳,拿Java代码转完的日期年月日时分秒,转出来的时间和在pgAdmin里用sql转完的日期 整整差了8个小时。。。。。
    你不信吗? 请看图
    时间戳:1598619305 转时间:年月日时分秒
    
select 1598619305,to_timestamp(1598619305),to_char(to_timestamp(1598619305),‘YYYY-MM-DD HH24:MI:SS');

    PgAdmin窗口:
    
    Java窗口:
    
    1.时间戳Long转Timestamp
    
select TO_TIMESTAMP(1512490630) as time from tablename;

    2.TimeStamp转时间戳Long
    转出来可能差8小时,需要减去8小时
    转10位
    
SELECT EXTRACT(epoch FROM NOW())-83600;
SELECT EXTRACT(epoch FROM CAST(‘2017-12-06 00:17:10' AS TIMESTAMP))-83600;

    转13位 转13位向下取整
    
SELECT EXTRACT(epoch FROM NOW())1000–836001000,floor(EXTRACT(epoch FROM NOW())1000-836001000);

    4.String转Date 只能得到年月日
    得不到时分秒,怪哉,这篇文章里找到了答案,设计如此…
    
select to_date(‘2020-08-28 12:55:05')

    5.TimeStamp 10位,13位 转String
    
select to_char(to_timestamp(1512490630), ‘YYYY-MM-DD HH24:MI:SS');
SELECT to_char(to_timestamp(t.create_time / 1000), ‘YYYY-MM-DD HH24:MI:SS');

    10位转String
    
SELECT to_char(to_timestamp(t.create_time / 1000), ‘YYYY-MM-DD HH24:MI:SS')

    总结
    以上为个人经验,希望能给大家一个参考,也希望大家多多支持电脑手机教程网。