sql - 在DB2中选择今年的第一天和最后一天

标签 sql date select db2

如何在 DB2 中以 YYYYMMDD 格式获取当年的第一天和最后一天?

我试过:

SELECT SUBSTR(CHAR(CURRENT DATE),8,0)||'0101' 

和:

SELECT SUBSTR(CHAR(CURRENT DATE),8,0)||'1231

但是在我输入年份之前它不起作用,但我需要将年份作为参数“不需要每年在查询中更改它”

最佳答案

你可以这样做:

select
    date('0001-01-01') + year(current date) years - 1 year first_day_of_the_year,
    date('0001-01-01') + year(current date) years - 1 day  last_day_of_the_year
from sysibm.sysdummy1

Demo on DB Fiddle :

FIRST_DAY_OF_THE_YEAR | LAST_DAY_OF_THE_YEAR
--------------------: | -------------------:
           2020-01-01 |           2020-12-31

If you want the results as strings in YYYYMMDD format, you can format the results with to_char():

select
    to_char(date('0001-01-01') + year(current date) years - 1 year, 'yyyymmdd') first_day_of_the_year,
    to_char(date('0001-01-01') + year(current date) years - 1 day, 'yyyymmdd')  last_day_of_the_year
from sysibm. sysdummy1

关于sql - 在DB2中选择今年的第一天和最后一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60949092/

相关文章:

mysql - SQL-仅获取每条记录的特定日期

mysql - 如何在 phpmyadmin 中设置事件?

sql - 使用 sql 从行中计算字符串值?

python - 在 Python 中调整日期时区的优雅方式

c++ - 在 C/C++ 中将 1 个月添加到 time_t 的简单方法

php - 选择不在和在

mysql - 带有 2 个 EXISTS 子句的 SQL Update 语句

Java 格式化日期字符串

mysql - Firebird 到 MySQL 查询迁移 - 选择内部连接子查询

MySQL 计算多列上的不同值