我如何将年份结合到一个日期?
我正在寻找一种更简单的方法来做到这一点。我当前的代码如下:
CASE WHEN LENGTH(CAST (MTH AS VARCHAR(4))) = 1
THEN CAST(CAST (YR AS VARCHAR(4))||'-0'||CAST (MTH AS VARCHAR(4))||'-01' AS DATE)
ELSE CAST(CAST (YR AS VARCHAR(4))||'-' ||CAST (MTH AS VARCHAR(4))||'-01' AS DATE)
END AS RPT_MTH
该表有一个名为YR的字段,其中4位数年。 MTH字段仅为1到12,而1-9的领先0。
是否有一种比我当前在做的事情更容易进入RPT_MTH?
I'm looking for an easier way to do this. My current code is written as below:
CASE WHEN LENGTH(CAST (MTH AS VARCHAR(4))) = 1
THEN CAST(CAST (YR AS VARCHAR(4))||'-0'||CAST (MTH AS VARCHAR(4))||'-01' AS DATE)
ELSE CAST(CAST (YR AS VARCHAR(4))||'-' ||CAST (MTH AS VARCHAR(4))||'-01' AS DATE)
END AS RPT_MTH
The table has a field called YR with the 4 digit Year. MTH field is just a number 1 through 12, with no leading 0 for 1-9.
Is there an easier way to get to the RPT_MTH than what I'm currently doing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据Teradata的内部日期:
Based on Teradata's internal date:
这有点短:
或者如果您需要坚持角色操作:
This is a little shorter:
Or if you need to stick to character operations:
Consider
Consider
CONCAT
,LPAD
,TO_CHAR
andTO_DATE
which may vary in support depending on your version. Default format forTO_DATE
is ISO date format at:'YYYY-MM-DD'
.