Postgresql:时间戳long,TimeStamp,Date,String互转
今天遇到⼀个神奇的问题:Postgre数据库⾥存的 10位long类型的时间戳,拿Java代码转完的⽇期年⽉⽇时分秒,转出来的时间和在pgAdmin⾥⽤sql转完的⽇期 整整差了8个⼩时。。。。。string转date的方法
你不信吗? 请看图
时间戳: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_ate_time / 1000), ‘YYYY-MM-DD HH24:MI:SS’);
10位转String
SELECT to_char(to_ate_time / 1000), ‘YYYY-MM-DD HH24:MI:SS’)