首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从IBM DB2中的当前日期开始获取过去4年中每个月的第一天和最后一天?

从IBM DB2中获取过去4年中每个月的第一天和最后一天,可以使用以下SQL查询语句:

代码语言:txt
复制
WITH date_range AS (
  SELECT CURRENT_DATE - (4 * 365) AS start_date, CURRENT_DATE AS end_date
  FROM SYSIBM.SYSDUMMY1
)
SELECT 
  DATE(DATE_RANGE.start_date + (ROW_NUMBER() OVER() - 1) MONTH) AS first_day,
  LAST_DAY(DATE(DATE_RANGE.start_date + (ROW_NUMBER() OVER() - 1) MONTH)) AS last_day
FROM date_range
CROSS JOIN TABLE (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) AS months(month)
WHERE DATE(DATE_RANGE.start_date + (ROW_NUMBER() OVER() - 1) MONTH) <= DATE_RANGE.end_date
ORDER BY first_day

这个查询语句使用了一个公共表表达式(Common Table Expression,CTE)来生成一个日期范围,从当前日期的前4年开始到当前日期结束。然后,使用ROW_NUMBER()函数和CROSS JOIN操作将每个月的序号与日期范围进行关联。最后,使用DATE()函数和LAST_DAY()函数来获取每个月的第一天和最后一天。

这个查询语句的结果将按照第一天的日期进行排序,并返回每个月的第一天和最后一天。

在腾讯云的数据库产品中,可以使用TencentDB for DB2来进行类似的操作。TencentDB for DB2是腾讯云提供的一种高性能、高可用的关系型数据库服务,支持DB2数据库引擎。您可以通过以下链接了解更多关于TencentDB for DB2的信息:

TencentDB for DB2产品介绍

请注意,以上答案仅供参考,具体实现方式可能因环境和需求而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券