日期和时间戳转换方式

将日期转换成时间戳(例如:北京时间2021-12-02 08:00:00)

1.利用网上的时间戳在线转换工具
https://tool.lu/timestamp/

2.利用postgresql的函数转换

-- 首先要确定服务器所用的时区
show time zone;
show timezone;
-- Asia/Shanghai

-- 查看所有或指定国家的时区名称信息
select * from pg_timezone_names where abbrev in ('CST');

-- 带时区转换
select EXTRACT(epoch FROM CAST('2021-12-02 08:00:00' AS TIMESTAMPTZ))
-- 1638403200

-- 不到时区转换
select EXTRACT(epoch FROM CAST('2021-12-02 08:00:00' AS TIMESTAMP))
-- 1638432000

-- 设置时区, 会话级别
set TIME zone 'GMT';
select EXTRACT(epoch FROM CAST('2021-12-02 00:00:00' AS TIMESTAMPTZ))

3.利用linux系统的date转换

##查看linux的时区,时区在东八区
date -R 
Mon, 06 Dec 2021 14:23:25 +0800

##date -d '2021-12-02 08:00:00' +'%s'
1638403200

##服务器是系统时区是在00
date -R 
Mon, 06 Dec 2021 06:25:53 +0000

##date -d '2021-12-02 00:00:00' +'%s'
1638403200

4.利用mysql的unix_timestamp()

select unix_timestamp('2021-12-01 08:00:00')

##查看mysql的时区设置
show varibales like '%time_zone%';

##修改当前会话的时区
set time_zone = '+8:00';

##修改全局的时间
set global time_zone = '+8:00';
flush privileges;

将时间戳转换成日期

1.在线转换工具
https://tool.lu/timestamp/

2.postgresql的to_timestamp()函数

select to_timestamp(1638403200)
2021-12-02 08:00:00

3.利用linux系统的date转换

##将时间戳转换成系统时间
date -d @1638403200
Thu Dec  2 08:00:00 CST 2021

4.利用mysql的from_timestamp()函数

select from_timestamp(1638403200)

猜你喜欢

转载自blog.csdn.net/weixin_44375561/article/details/121747471