postgresql 的日期字段数据转成字符串,能不能设置日期默认转换字符串的格式?

2021-08-20 15:53:38 +08:00
 tctc4869

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

一种方式是给日期列的结果集内容加格式化函数,但这样每遇到一个日期字段,为了按照自己的要求显示指定日期格式,都得手动添加,这样会很麻烦

1442 次点击
所在节点    PostgreSQL
5 条回复
moen
2021-08-20 17:15:27 +08:00
这个可以修改 DBeaver 的格式化设置,就是如果要针对不同的连接只能手动切换 profile
tctc4869
2021-08-20 17:59:01 +08:00
@moen 好吧,我补充一下,DBeaver 我只是用来操作方便显示的,我说的是通过编程语言的数据库驱动读取数据库,查询数据表结果集,

如果结果集有日期字段。不手动指定 to_char,比如读到 timestamp 类型的列,使用 timestamp||''这个操作,或者是使用 row_to_json,日期时间数据,会出现“T“字符,时间部分还会出现毫秒。
tctc4869
2021-08-20 18:03:09 +08:00
@moen 另外一种方式是改编程语言那边的代码,实现对查询语句做封装,对每个日期字段,其结果集的列都添加 to_char 函数。

但如果这样做的工作量就大了,相当于做 orm 了,所以因此而改动编程语言项目方面的操作就不用考虑了
tctc4869
2021-08-20 21:15:51 +08:00
这到底要怎么解决啊 ,查询有关 time,timestamp 列的结果集找不到默认转字符串格式化输出方法,这样的话,连前端的日期选择器组件都会收到影响。

除了对查询结果集,日期字段一个一个手动写 to_char 么。这很麻烦啊。
dzdh
2021-08-26 15:12:45 +08:00
设置字段的存储格式啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/797053

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX