1,postgresql timestamp在表中的原始数据是数值还是格式化好的时间字符串?
2,如果是格式化的字符串,那他自己排序是不是性能很差?
3,如果是数值,可否直接按照数值查出来呢?
1,postgresql timestamp在表中的原始数据是数值还是格式化好的时间字符串?
2,如果是格式化的字符串,那他自己排序是不是性能很差?
3,如果是数值,可否直接按照数值查出来呢?
PostgreSQL 提供 timestamp 数据类型。
https://www.postgresql.org/do...
所以不要以字符串或者整数存储 timestamp 数据,会带来存储和查询性能上的代价。
这个问题比较复杂
TIMESTAMP类型虽然是一个8字节数值,但是为了向用户屏蔽内部细节,它的输出都是以字符串的形式来输出时间戳的(时间戳的格式可以指定)。从道理上,PG社区并不希望直接把内部数值暴露到外部。
如果非要以数值类型查出来,目前好像也没有办法能够查到其原始的8字节数值,但是可以通过下述方法"曲线救国" —— 即把TIMESTAMP类型转换为Unix时间戳(1970 年 1 月 1 日(00:00:00 GMT)以来)后以整型显示:
假设有下面一张表
那么想以所谓的数值形式查询
col2
的值的SQL语句如下:关于
EPOCH
的用法可以参照手册9.9. Date/Time Functions and Operators