postgresql - 如果时间部分是可选的,如何将日期时间存储在数据库中?

标签 postgresql datetime timestamp schema

我应该将其存储在单个时间戳/日期时间字段中还是单独的日期和时间字段中?我更喜欢将它存储为单个时间戳字段,但我需要知道用户何时没有输入时间部分。

如何最好地将其存储在数据库中?我正在使用 postgresql。

最佳答案

这肯定是一个坏主意的原因。您的选择有限也是有原因的。这是个坏主意,因为它是单个数据项,而且更实际的原因是,如果您有两个字段,则无法存储时区。

如上所述,空值是使用两个字段的明显好处。

您可能还想考虑使用单个日期时间字段并存储一个标志以指示用户是否输入了时间。这可能是一个 bool 标志。但是,您仍然需要考虑如何使用这些数据 - 仅在日期时间字段中输入日期将导致时间组件被设置为午夜。这将对排序和选择产生影响。此外,如果您要存储时区,则在使用数据时必须非常小心。

为了满足您了解是否输入时间的要求,您需要有两个字段。不过,您不需要第二个字段是时间。

关于postgresql - 如果时间部分是可选的,如何将日期时间存储在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1016546/

相关文章:

java - 时间戳 Spring 转换

SQL Server : Cannot insert an explicit value into a timestamp column

postgresql - 包含主键时,Postgres GROUP BY 返回所有行

PostgreSQL - CSV 文件导入错误

Python 日志记录模块发出错误的时区信息

sql-server - 如何在sql中将分钟分为天、小时和分钟

postgresql - PostgreSQL 中的触发器

postgresql - greenplum 中的 gpload 实用程序

python - 从日期和会计年度结束获取季度的开始和结束日期

sql - postgreSQL:试图过滤掉显示相同位置但时间戳略有不同的重复行?