gpt4 book ai didi

sql - PostgreSQL 中的 YYYY-MM 列类型

转载 作者:行者123 更新时间:2023-11-29 12:30:37 24 4
gpt4 key购买 nike

我需要一个与月份和表中的用户关联的值。我想对其执行查询。不知道有没有适合这种需求的列数据类型。如果不是,我应该:

  • 创建字符串字段并构建年月连接 (2017-01)
  • 创建一个 int 字段并构建年月连接 (201701)
  • 创建两列(一年零一个月)
  • 在月初创建日期列 (2017-01-01 00:00:00)
  • 还有别的吗?

目标是运行类似(伪 SQL)的查询:

SELECT val FROM t WHERE year_month = THIS_YEAR_MONTH and user_id='adc1-23...';

最佳答案

我建议不要对这个问题考虑太多,只使用该月的第一个日期/时间。 Postgres 有很多特定于日期的函数——从 date_trunc()age()+ interval —— 来支持日期。

您可以轻松地将它们转换为您想要的格式,获取两个值之间的差异,等等。

如果您将查询表述为:

where year_month = date_trunc('month', now()) and user_id = 'adc1-23...'

然后它可以很容易地利用 (user_id, year_month)(year_month, user_id) 上的索引。

关于sql - PostgreSQL 中的 YYYY-MM 列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43657514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com