postgresql 数据类型中,其中的三个日期类型,timestamp,date,time,这三个转成字符串,也就是格式化的时候,不指定转换格式。
Dbeaver 连接 pg 查询的结果集
查询会发生下面几种情况 timestamp 例:不加字符串转换结果:2021-08-18 16:09:56,加了字符串转换结果:2021-08-18 T16:09:56.256121
time 例:不加字符串转换结果:16:09:56,加了字符串转换结果:16:09:56.256121
date 的显示还算正常。
那能不能设置查询 timestamp 和 time 类型的列的结果集内容的默认格式化类型的配置
比如 timestamp 例:2021-08-18 16:09:56,默认格式化结果集格式为:2021-08-18 16:09
time 例:16:09:56,默认格式化结果集格式为:16:09
一种方式是给日期列的结果集内容加格式化函数,但这样每遇到一个日期字段,为了按照自己的要求显示指定日期格式,都得手动添加,这样会很麻烦
1
moen 2021-08-20 17:15:27 +08:00
这个可以修改 DBeaver 的格式化设置,就是如果要针对不同的连接只能手动切换 profile
|
2
tctc4869 OP @moen 好吧,我补充一下,DBeaver 我只是用来操作方便显示的,我说的是通过编程语言的数据库驱动读取数据库,查询数据表结果集,
如果结果集有日期字段。不手动指定 to_char,比如读到 timestamp 类型的列,使用 timestamp||''这个操作,或者是使用 row_to_json,日期时间数据,会出现“T“字符,时间部分还会出现毫秒。 |
3
tctc4869 OP @moen 另外一种方式是改编程语言那边的代码,实现对查询语句做封装,对每个日期字段,其结果集的列都添加 to_char 函数。
但如果这样做的工作量就大了,相当于做 orm 了,所以因此而改动编程语言项目方面的操作就不用考虑了 |
4
tctc4869 OP 这到底要怎么解决啊 ,查询有关 time,timestamp 列的结果集找不到默认转字符串格式化输出方法,这样的话,连前端的日期选择器组件都会收到影响。
除了对查询结果集,日期字段一个一个手动写 to_char 么。这很麻烦啊。 |
5
dzdh 2021-08-26 15:12:45 +08:00
设置字段的存储格式啊
|