【发布时间】:2020-04-07 13:08:55
【问题描述】:
我正在编写一个可用于多种数据库类型的 SQL 语句。 我以前从未使用过 DB2,并且不确定使用日期的语法。 日期存储为日期类型。 这是针对 SQL Server 数据库的语句的 sn-p: SELECT * from tbl1 where YEAR(Start_Time) = YEAR(GetDate() -365)
我认为 DB2 中的等价物是: SELECT * from tbl1 where YEAR(Start_Time) = YEAR(current_date -365 days)
很遗憾,我的家庭办公室没有 DB2 环境(感谢 COVID-19)
【问题讨论】:
-
@data_henrik Db2 fiddle 似乎离线了。
-
DB2 LUW 开发许可证存在,并且有官方的 docker 镜像,我相信。除此之外,像往常一样,
SOME_FUNCTION(column)将忽略基本上任何 RDBMS 中的索引 - 首选执行常规范围查询(具有独占上限!):WHERE start_time >= :this_year_january_first - 1 YEAR AND start_time < :this_year_january_first。请记住,年份并不都是 365 天 - 您确定要几天而不是年份吗?