sql - 将财务期转换为日期/时间
问题描述
我正在尝试将财务期转换为日期时间,例如 201801 = 01/04/2018
e.g.;
201801 = 01/04/2018
201802 = 01/05/2018
201803 = 01/06/2018
201804 = 01/07/2018
201805 = 01/08/2018
201806 = 01/09/2018
201807 = 01/10/2018
201808 = 01/11/2018
201809 = 01/12/2018
201810 = 01/01/2019
201811 = 01/02/2019
201812 = 01/03/2019
Formula in tableau that works
DATE(left(str([Period]),4) + "-" + right(str([Period]),2) + "-1")
我在 SQL 中需要它。尝试使用 convert 和 Cast 但不断收到语法错误。
CONVERT(date,(left(GL_master.period,4)+ '-' +(right(GL_master.period,2)+
'-1')),
根据总结。
解决方案
我把'201801'放在哪里,你应该把你的列名 - [Period]
?
select DATEADD(month, 3, CONVERT(date, CONCAT('201801', '01'), 112))
^^^^^^^^
[Period] ?
我们用另一个“01”填充您的“日期”201801,使其类似于日期格式 112,将其转换为日期并在变成日期后添加 3 个月。
201801 -> 20180101 -> 01/04/2018
这种方法也适用于滚动多年
201812 -> 20181201 -> 01/03/2019
推荐阅读
- jakarta-ee - 安装 Swagger CodeGen 时遇到问题
- azure - Azure VM 操作系统构建 - Powershell
- javascript - 如何在 Angular 6 中使用 Jasmine 将加载的数据测试为反应形式?
- javascript - Javascript RegEx 语法混乱
- javascript - 在 Ant.Design 中个性化 ReactJS 分页样式 - 有什么办法吗?
- javascript - 从 URL 参数设置隐藏的表单字段
- git - Git 帮助理解基于合并的冲突
- xml - 如何将 XML 转换为 CIF 格式?
- apache-spark - spark-hive - Upsert 到动态分区 hive 表中会引发错误 - 分区规范包含非分区列
- ubuntu-16.04 - 在 Arch 下创建 ubuntu 16 容器时出错