我需要检查一个给定的日期是否在每月查询的上个月。我可以得到
CURRENT DATE - 1 MONTH
来比较选取的日期,但我无法假设目前的日期就是每个月的第一天。是否有内建的方法可以取得月份的第一天,而不需要撷取年份和月份并将它们粘在一起?
inn6fuwd1#
当月第一天:
CURRENT_DATE - (DAY(CURRENT_DATE)-1) DAYS
本年度的第一天是
CURRENT_DATE - (DAY(CURRENT_DATE)-1) DAYS - (MONTH(CURRENT_DATE)-1) MONTHS
上个月的最后一天:
CURRENT_DATE - DAY(CURRENT_DATE) DAYS
上个月的第一天:
CURRENT_DATE - (DAY(CURRENT_DATE)-1) DAYS - 1 MONTH
uqjltbpv2#
今年的第一天:
date('0001-01-01') + year(current date) years - 1 year
本月第一天:
date('0001-01-01') + year(current date) years - 1 year + month(current date) months - 1 month
上月第一天:
date('0001-01-01') + year(current date) years - 1 year + month(current date) months - 2 months
如果您不需要维护SQL与Db2 LUW v10.5及更早版本的兼容性,也可以使用以下方便的Db2 LUW v11.1标量函数:第一个是第一个是第一个。本月第一天:
THIS_MONTH(CURRENT DATE)
THIS_MONTH(CURRENT DATE) - 1 MONTH
THIS_MONTH(CURRENT DATE) - 1 DAY
14ifxucb3#
下面是我的DB2 SQL Month Calculation速查表的片段:本月月初:
CURRENT DATE + 1 DAYS - DAY(CURRENT DATE) DAYS
本月末:
LAST_DAY(CURRENT DATE)
上月初:
CURRENT DATE + 1 DAYS - DAY(CURRENT DATE) DAYS - 1 MONTHS
上月末:
LAST_DAY(CURRENT DATE - 1 MONTHS)
下月初:
CURRENT DATE + 1 DAYS - DAY(CURRENT DATE) DAYS + 1 MONTHS
下个月底:
LAST_DAY(CURRENT DATE + 1 MONTHS)
aydmsdu94#
为了充实这一点与更多的信息。上面的解决方案是完美的,如果你想要的第一天的一个月,说你想要的最后一天的一个月,或在我的情况下,我想要的最后一天的下一个季度。从上面我正在做
date('0001-01-31') + year(date(prevQdate))years - 1 year + month(prevQdate) months + 2 months)
这并没有给我我想要的,有时日期是30号而不是31号,有31天的月份...将其更改为
date('0001-01-31') + year(date(prevQdate))years - 1 year +**(month(prevQdate) + 2)**months)
给了我我想要的。看起来第一次添加的月份从prev季度日期是重新设置天的一部分,我的日期,因此第二次添加的月份是工作的日期只有30天的一个月。只是在DB2中使用这种日期操作方法时需要注意的问题。
chhqkbe15#
LUW 9.7(我认为是z/os)方法使用内置函数。本月最后一天:
LAST_DAY(CURRENT DATE - 2 MONTHS) + 1 DAY or (LUW) TRUNCATE(CURRENT DATE - 1 month, 'MONTH')
LAST_DAY(CURRENT DATE - 1 MONTH) + 1 DAY or (LUW) TRUNCATE(CURRENT DATE, 'MONTH');
btqmn9zl6#
我相信下面的方法对你有用。
ROUND_TIMESTAMP (somedate,'W')
6条答案
按热度按时间inn6fuwd1#
当月第一天:
本年度的第一天是
上个月的最后一天:
上个月的第一天:
uqjltbpv2#
今年的第一天:
本月第一天:
上月第一天:
如果您不需要维护SQL与Db2 LUW v10.5及更早版本的兼容性,也可以使用以下方便的Db2 LUW v11.1标量函数:第一个是第一个是第一个。
本月第一天:
上月第一天:
上个月的最后一天:
14ifxucb3#
下面是我的DB2 SQL Month Calculation速查表的片段:
本月月初:
本月末:
上月初:
上月末:
下月初:
下个月底:
aydmsdu94#
为了充实这一点与更多的信息。上面的解决方案是完美的,如果你想要的第一天的一个月,说你想要的最后一天的一个月,或在我的情况下,我想要的最后一天的下一个季度。
从上面我正在做
这并没有给我我想要的,有时日期是30号而不是31号,有31天的月份...
将其更改为
给了我我想要的。看起来第一次添加的月份从prev季度日期是重新设置天的一部分,我的日期,因此第二次添加的月份是工作的日期只有30天的一个月。
只是在DB2中使用这种日期操作方法时需要注意的问题。
chhqkbe15#
LUW 9.7(我认为是z/os)方法使用内置函数。
本月最后一天:
上个月的第一天:
本月第一天:
btqmn9zl6#
我相信下面的方法对你有用。