首页 > 解决方案 > 在 postgresql 中标记日期格式的案例语句

问题描述

我有一个名为“start_date”的列,如下所示。start_date 的数据类型是“文本”。

start_date

2019-02-28
2020-01-30
31-02-2019

如果日期格式为“yyyy-mm-dd”,那么我想将其标记为“0”。否则我们需要将其标记为 1。我们如何使用 case 语句来实现这个。

预期产出

start_date  Flag

2019-02-28   0
2020-01-30   0
31-02-2019   1

标签: sqlpostgresqldate

解决方案


嗯。. . 对于您的目的,这可能足够接近:

select (not (start_date ~ ^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$')) as flag

这将检查格式是否为 DDDD-DD-DD。它不验证日期是否实际有效。


推荐阅读