AS400中将日期转换为字符
我正在尝试将当前日期 - 2 个月转换为 yyyymmdd 格式并从中减去 1900000。
Oracle 对我来说很容易
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-2),'YYYYMMDD') - 19000000 FROM DUAL
有人可以建议我对 AS400 进行同样的操作吗?
提前致谢。
I am trying to convert the current date - 2 months into format yyyymmdd and subtract 1900000 from it.
Oracle was easy for me
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-2),'YYYYMMDD') - 19000000 FROM DUAL
Can some one suggest me the same for AS400 .
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这应该可以解决问题:
或者如果您更喜欢在没有嵌套选择的情况下执行相同的操作:
干杯
That should do the trick:
or if you prefer to do the same without nested select:
Cheers
最简单的可能是:
一些想法可能会挖掘出更好的东西。但无论如何,事情都不会变得简单很多。
Simplest might be:
Some thought might dig out something better. but it won't get a lot simpler no matter what.
选择
DEC(SUBSTR(CHAR(日期(NOW()) - 2个月), ISO), 1, 4)||
SUBSTR(CHAR(日期(NOW()) - 2个月), ISO), 6, 2)||
SUBSTR(CHAR(日期(NOW()) - 2个月), ISO), 9, 2), 8, 0) - 19000000
来自双
SELECT
DEC(SUBSTR(CHAR(DATE(NOW()) - 2 MONTHS), ISO), 1, 4)||
SUBSTR(CHAR(DATE(NOW()) - 2 MONTHS), ISO), 6, 2)||
SUBSTR(CHAR(DATE(NOW()) - 2 MONTHS), ISO), 9, 2), 8, 0) - 19000000
FROM DUAL
这是一个有点晚的答案,但应该可以解决问题:)
这几乎与 karol.mlot 的答案相同,但是,由于您要求 YYYYMMDD,您将获得正确的格式
This is a litte late answer, but should do the trick :)
This is almost the same as karol.mlot's answer, however, you will be getting the right format since you asked for YYYYMMDD
char 字段后面的 parm 必须是 char 字段的格式(我使用 *MDY 和“/”作为示例)。
表达式末尾的参数必须是数字字段的格式。
因此,此示例将 11/22/2008 转换为 11222008。
如果您希望将 2008-11-22 转换为 20081122,请将两个参数设置为 *ISO。
The parm following the char field must be the format of the char field (I used *MDY with "/"for an example).
The parm at the end of the expression must be the format of the numeric field.
So this example converts 11/22/2008 to 11222008.
If you want 2008-11-22 converted to 20081122 make both parms *ISO.