为了账号安全,请及时绑定邮箱和手机立即绑定

PostgreSQL 数据时间类型的最佳数据类型

PostgreSQL 数据时间类型的最佳数据类型

慕尼黑8549860 2021-06-11 11:13:01
其实我有:CREATE TABLE public.user(  id BIGSERIAL NOT NULL,  nick VARCHAR(255) NOT NULL,  email VARCHAR(255) NOT NULL,  born DATE,  joined DATE,  tags text[]);我想选择最佳选项来节省注册时间和出生数据。我搜索了互联网,但没有找到任何好的结果。也许使用python中的时间更好,然后将其插入到postgres中?
查看完整描述

3 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

对于出生日期,您不需要一天中的时间,因此 aDATE是合适的。

对于注册日期,您可能希望保存日期和时间。在这种情况下TIMESTAMP会更合适。

避免使用VARCHAR来存储日期。由于它不验证任何内容,因此它允许您存储错误信息,并且您将无法轻松计算关于它们的任何信息。例如:

  • 错误的字符串值 #1::35-jan-2017此日期不存在。

  • 错误的字符串值 #2:10-12-99是 12 月 10 日还是 10 月 12 日?


查看完整回答
反对 回复 2021-06-15
?
四季花海

TA贡献1811条经验 获得超5个赞

首先,您需要定义更改数据库结构(添加或删除记录)的频率。我建议你使用 ORM 来完成像 SQLAlchemy 或 PonyORM 这样的样板任务,避免直接操作数据库。

回答您的问题:无论您想向任何字段添加时间戳,触发器通常对这项任务很有用。

你总是使用:

日期数据类型,用于不需要特定时刻的日期,例如生日日期、发布的帖子(在博客上)。

特定时刻的时间戳,例如在应用程序中注册、管理登录应用程序、交易记录等。

切勿合并两部分的代码,因此无论您决定从 Python 代码管理数据库,都应仅使用 Python 代码。

同样,无论您决定在数据库上管理表和操作,都只使用数据库中的触发器和对象来执行此任务。

我希望你的问题得到了回答!


查看完整回答
反对 回复 2021-06-15
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

如果您只想存储没有时区的普通时间,只需使用timestampprobaböy 对创建时间等有用。对于诸如生日之类的列,只需使用日期


查看完整回答
反对 回复 2021-06-15
  • 3 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号