如何在PostgreSQL中判断日期是否为当月第一天
PostgreSQL 判断日期是否为当月第一天的实现方案
实现查询
以下 SQL 语句可直接生成包含 Month_Start 字段的结果集,标记日期是否为当月第一天:
SELECT "Student Name", "Start Date", "Start Date" = date_trunc('month', "Start Date")::date AS "Month_Start" FROM students;
示例数据
假设学生数据存储在 students 表中,数据如下:
Student Name Start Date ABC 2021-01-01 DEF 2021-01-02 GHI 2021-02-03 JKL 2021-02-01 MNO 2021-01-05 PQR 2021-03-06 STU 2021-03-01
查询结果
执行上述 SQL 后,得到的结果集如下:
Student Name Start Date Month_Start ABC 2021-01-01 TRUE DEF 2021-01-02 FALSE GHI 2021-02-03 FALSE JKL 2021-02-01 TRUE MNO 2021-01-05 FALSE PQR 2021-03-06 FALSE STU 2021-03-01 TRUE
逻辑说明
date_trunc('month', "Start Date"):将日期截断到当月的起始时刻(例如2021-01-01 00:00:00)::date:将截断后的 timestamp 类型转换为 date 类型,得到当月第一天的日期值- 对比原日期与当月第一天的日期,相等则返回
TRUE,否则返回FALSE
内容的提问来源于stack exchange,提问作者Vikas Dwivedi
相关产品推荐
相关产品推荐

