将 iSeries 日期设置为下个月 1 日后将其转换为字符串

Posted

技术标签:

【中文标题】将 iSeries 日期设置为下个月 1 日后将其转换为字符串【英文标题】:Convert iSeries Date to String after setting it to 1st of next month 【发布时间】:2016-10-26 05:07:46 【问题描述】:

在 DB2 SQL 查询中,我返回两个整数:年和月。由此,我需要构造一个 dd/mm/yyyy 格式的字符串。日期必须代表下个月的第一天。

例如 Year = 2016, Month = 9 将产生字符串“01/10/2016”

目前我使用以下(我继承的)来执行此操作:

substring(cast(DATE(INSERT(INSERT(LEFT(CHAR((Year * 10000) + (Month * 100) + 1),8),5,0,''-''),8,0,''-'')) + 1 month as char(10)),9,2)|| ''/'' ||
substring(cast(DATE(INSERT(INSERT(LEFT(CHAR((Year * 10000) + (Month * 100) + 1),8),5,0,''-''),8,0,''-'')) + 1 month as char(10)),6,2)|| ''/''||
substring(cast(DATE(INSERT(INSERT(LEFT(CHAR((Year * 10000) + (Month * 100) + 1),8),5,0,''-''),8,0,''-'')) + 1 month as char(10)),1,4)  as UPDATEDATE

但这似乎很可怕。有没有更好的方法来实现这个结果?

谢谢

罗恩·文图拉

【问题讨论】:

【参考方案1】:

试试这个

 select VARCHAR_FORMAT(TIMESTAMP_FORMAT(cast(year*10000+month*100+1 as char(8)), 'YYYYMMDD') + 1 month, 'DD/MM/YYYY')  as mydate                                         
 from yourtable

【讨论】:

以上是关于将 iSeries 日期设置为下个月 1 日后将其转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

下个月,PHP 的同一天

日期选择器上/下个月日期可选

将日期取整到下个月的第一天

LWUIT 日历问题

PHP下获取上个月、下个月、本月的日期

如何从全日历年视图中隐藏上个月和下个月的日期和事件?