我有一个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/