服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - PostgreSQL - Postgresql之时间戳long,TimeStamp,Date,String互转方式

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

2023-05-19 17:25程序媛一枚~ PostgreSQL

这篇文章主要介绍了Postgresql中的时间戳long,TimeStamp,Date,String互转方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

时间戳long,TimeStamp,Date,String互转

今天遇到一个神奇的问题:

Postgre数据库里存的 10位long类型的时间戳,拿Java代码转完的日期年月日时分秒,转出来的时间和在pgAdmin里用sql转完的日期 整整差了8个小时。。。。。

你不信吗? 请看图

时间戳:1598619305 转时间:年月日时分秒

?
1
select 1598619305,to_timestamp(1598619305),to_char(to_timestamp(1598619305),‘YYYY-MM-DD HH24:MI:SS');

PgAdmin窗口:

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

Java窗口:

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

1.时间戳Long转Timestamp

?
1
select TO_TIMESTAMP(1512490630) as time from tablename;

2.TimeStamp转时间戳Long

转出来可能差8小时,需要减去8小时

转10位

?
1
2
SELECT EXTRACT(epoch FROM NOW())-83600;
SELECT EXTRACT(epoch FROM CAST(‘2017-12-06 00:17:10' AS TIMESTAMP))-83600;

转13位 转13位向下取整

?
1
SELECT EXTRACT(epoch FROM NOW())1000–836001000,floor(EXTRACT(epoch FROM NOW())1000-836001000);

4.String转Date 只能得到年月日

得不到时分秒,怪哉,这篇文章里找到了答案,设计如此…

?
1
select to_date(‘2020-08-28 12:55:05')

5.TimeStamp 10位,13位 转String

?
1
2
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

?
1
SELECT to_char(to_timestamp(t.create_time / 1000), ‘YYYY-MM-DD HH24:MI:SS')

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_40985985/article/details/108529778

延伸 · 阅读

精彩推荐