我有一个date类型的列,其中只有年和月是狂欢的。我想在SQL查询中使用缩短日期格式,例如:

SELECT * FROM my_table where date_column='2019-10';

当然,现在它的结果是错误的:
SQL Error [22007]: ERROR: invalid input syntax for type date: "2019-12"

有可能吗?谢谢您!
编辑:
我想实现的是让它自动化。我知道我可以用to_date('2019-10','YYYY-MM')来投射我的字符串。我的问题是如何使我的查询看起来像:SELECT * FROM my_table where date_column='2019-10'。没有任何铸造和转化。
我在读关于CREATE CAST的声明,但我不确定这是我在这里寻找的。

最佳答案

我建议:

where date_column >= ('2019-10' || '-01')::date and
      date_column < ('2019-10' || '-01')::date + interval '1 month'

此公式允许将date_column上的索引用于查询(如果此类索引可用)。
如果你不在乎,你可以使用to_char()
where to_char(date_column, 'YYYY-MM') = '2019-10'

关于sql - 从“YYYY-MM” varchar自动广播到PostgreSQL中的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58287433/

10-13 08:07