sql - PostgreSQL 将月份字符串转换为月份的开始和结束日期
问题描述
是否可以在 PostgreSQL 中将字符串“201701”转换为日期“2017-01-01”和“2017-01-31”?
因此对于:
"201701" get '2017-01-01' and '2017-01-31'
"201702" get '2017-02-01' and '2017-02-28'
"201703" get '2017-03-01' and '2017-02-31'
ETC
解决方案
您可以使用该TO_DATE
函数,并使用字符串连接附加日期组件,如下所示:
SELECT
TO_DATE('201702' || '01', 'YYYYMMDD') AS first,
(TO_DATE('201702' || '01', 'YYYYMMDD') + INTERVAL '1 month') -
INTERVAL '1 day' AS last;
上面的技巧只是添加01
到本月的第一天。对于同月的最后一天,它首先在第一天加一个月,得到下个月的第一天,然后回滚一天,得到当月的最后一天。
演示
推荐阅读
- javascript - JavaScript计算数字的百分比场地
- elixir - 如何在 Elixir 中使用捕获运算符从列表中捕获元组?
- javascript - Javasript 数组看不到表标签
- node.js - 在 Promise 中设置变量
- java - 在属于每个代理集合的 LinkedHashMap 中查找命名属性的平均值
- react-native - 如何使用电话信用在 React Native 中以编程方式发送 SMS
- c++ - C++:使用自定义散列和相等函数扩展已经创建的 C 结构,以便在 unordered_map 中使用
- python - 为什么我的 pygame 按钮并不总是有效?
- jquery - Rail6-Webpack jQuery 配置实现导航栏下拉工作 0
- python - Python - TypeError:'str'和'int'的实例之间不支持'<'