sql - 数字到日期转换
问题描述
我有下表。是否可以将月份列转换为日期?
ID Month
1 201805
预期成绩:
Id Month Date
1 201805 5/1/2018
解决方案
您可以只使用to_date()
合适的格式掩码,例如使用固定值作为演示:
select to_date(to_char(201805), 'YYYYMM') from dual;
TO_DATE(TO_CHAR(201
-------------------
2018-05-01 00:00:00
您不需要在值中显式添加天数(如@HoneyBadger 所示,或在转换为字符串后连接),因为无论如何它都会默认为每月的第一天。
所以你需要做类似的事情
to_date(to_char(month), 'YYYYMM')
可以跳过该to_char()
部分,因为无论如何该数字都会隐式转换为字符串,但包含它会更完整。
目前尚不清楚您是打算将其作为查询的一部分(可能在视图中)还是要修改表;如果是后者,那么您可以使用虚拟列来避免重复数据,并且在月份发生变化时必须维护转换后的值。
推荐阅读
- python - Python 看不到 kv 文件
- vue.js - Vue Bootstrap Table 为列添加不同的类
- copy - 如何使用 copy_to_user api 从内核空间传递到缓冲区到用户空间
- keras - logits 和 labels 必须具有相同的第一维,得到 logits 形状 [800,3568] 和标签形状 [6400]
- windows - 域策略不应从“作为服务登录”中删除本地帐户
- symfony5 - Symfony5 中的日志弃用
- html - 如何通过复选框 Django 更新布尔字段
- jquery - 同一页面中的交易视图链接 largeChartUrl:
- reactjs - React Native - 元素类型无效(简单页面视图)
- python - 选择pandas groupby系列中的值,小于和随后大于阈值