如何在Informix中获取指定年份的第一天?MDY函数使用异常排查
Informix MDY函数返回指定年份第一天的问题排查
核心问题:MDY函数参数顺序错误
Informix的MDY()函数参数固定为**MDY(月份, 日期, 年份)**的顺序,如果你误将年份放在第一个参数位置(比如写成MDY(2010, 1, 1)),会因月份值超出1-12的合法范围,导致返回非预期结果或报错。正确获取指定年份第一天的SQL写法
要得到2010年1月1日,执行以下语句即可:
SELECT MDY(1, 1, 2010) FROM sysmaster:sysdual;
为什么当前日期能正常返回?
如果是基于当前日期推导当年第一天(比如MDY(1, 1, YEAR(CURRENT DATE))),参数顺序是正确的,因此能得到预期结果,这也反向验证了参数顺序是问题根源。关于DBeaver的说明
DBeaver只是数据库连接工具,不会修改Informix函数的原生逻辑,本次问题和连接工具无关。
内容的提问来源于stack exchange,提问作者Arun
相关产品推荐
相关产品推荐

