一:俩种时间戳
1. 十位时间戳
十位时间戳代表的是到秒级别。
例如:1644206709158
2. 十三位时间戳
十三位时间戳代表的是到毫秒级别。
例如:1644206709
二:时间戳相互转化
1. 十三位转为十位
### select cast(1644206709158/1000 as bigint) from a
2 .时间戳格式转换
2.1 十三位转换为日期
from_unixtime(cast(1644206709158/1000 as bigint),'yyyy-MM-dd HH:mm:ss')
结果:2022-02-07 12:05:09
2.2 十位转换为日期
from_unixtime(cast(1644206709 as bigint),'yyyy-MM-dd HH:mm:ss')
结果:2022-02-07 12:05:09
2.3 日期转为十位时间戳
unix_timestamp('2022-02-07 12:05:09')
结果:1644206709
2.4 日期转为十三位时间戳
unix_timestamp('2022-02-07 12:05:09')*1000
结果: 1644206709000
2.5 当前日期的时间戳和时间
current_timestamp() 结果:2022-02-07 14:53:10
unix_timestamp() 结果:1644216754
三:问题
1. 当我们将十三位时间戳转为日期,不相除1000,会得到以下的结果。
from_unixtime(cast(1644206709000 as bigint),'yyyy-MM-dd HH:mm:ss')
结果:54072-11-01 13:50:00