### 问题描述
项目需要将时间类型以yyyy/MM/dd HH:mm:ss形式存储,postgresql用的不多,数据库版本用的是96版本的不知道怎么设置
### 问题描述
项目需要将时间类型以yyyy/MM/dd HH:mm:ss形式存储,postgresql用的不多,数据库版本用的是96版本的不知道怎么设置
我感觉你是我坤哥啊!!! 数据库里时间没必要用特别的格式存吧,就用postgresql默认的就好了啊 pojo的日期字段使用LocalDateTime 插入之前和查询之后 用DateTimeFormatter格式化一下 还是我理解错了你的需求?
15 回答8.2k 阅读
8 回答5.9k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.2k 阅读✓ 已解决
建议题主还是回头再梳理一下项目的真正需求是什么吧,对于你所说的需求
以我个人经验判断,这多半是一个伪需求。因为正常的业务需求应该是“所有时间戳的展示应该统一遵循yyyy/MM/dd HH:mm:ss” 这样的格式,很少会有需求方会将需求定义到把时间戳的存储格式。
倒也不是说没见过时间戳这么存的,但是如果时间戳真的按照“yyyy/MM/dd HH:mm:ss”这样的字符串形式来存,一来存储太浪费了(你可以算算存一个时间戳需要多少字节),而来以字符串来做索引的话效率不会太高。
通常的最佳实践是:
TIMESTAMP
类型存储(8字节). 如果业务应用涉及到跨时区的数据,那么可以考虑使用TIMESTAMP WITH TIME ZONE
类型(10字节)当时间戳数据需要展示给人看的时候才去做格式化处理。这种处理可以根据具体需要从以下两个层面选择转换的具体方法
TIMESTAMP
类型调用其UDFto_char()
进行格式化转换SimpleDateFormat#format()
方法此外,关于PG中
TIMESTAMP
类型的使用,我以前也做过下述回答,可供参考: