sql - 在 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
解决方案
嗯。. . 对于您的目的,这可能足够接近:
select (not (start_date ~ ^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$')) as flag
这将检查格式是否为 DDDD-DD-DD。它不验证日期是否实际有效。
推荐阅读
- mouseevent - 为什么这段代码不能从 SDL 事件轮询中清除鼠标事件?
- prometheus - 我们可以为单个 prometheus 服务器使用两个不同的 prometheus.yml 文件吗
- nuget - PDB 文件未打包在 *.nupkg 中
- jenkins - level":"info","msg","500 Internal server error: failed parse webhook:Invalid webhook signature"
- c++ - 来自 Visual C++ 的奇怪错误:Promise 类型没有默认构造函数
- javascript - 如何根据两个指针事件计算旋转
- mysql - 如何根据其他联接表条件选择某些表字段的总和?
- google-sheets - Google 表格:如何过滤垂直合并的单元格
- python - 如何在类中返回 self 的值?
- python - Trackpy tp.batch() 给生成器已经执行错误