首页 > 解决方案 > 将日期转换为月年格式并在查询中传递

问题描述

我有一个 BIRT 报告,用户将以 dd-mm-yyyy 格式输入日期,但是我需要将 dd-mm-yyyy 转换为 MON-YYYY 格式。

我曾尝试使用 VARCHAR_FORMAT(FIELDNAME,'MON-YYYY') 但它不起作用。

select …….
where VARCHAR_FORMAT(fieldname,'MON-YYYY') = '2017-05-15'; 

用户将结束日期 15/05/2017 为该字段的数据库中存在的值是2017-05-15 07:30:00.0

标签: sqldb2birt

解决方案


更新

显然该列不是字符串而是日期时间,这意味着转换只是

to_date(fieldname, 'MON-YYYY') 

但是,如果该列在 Where 子句中使用,则根本不应该进行转换。

——</p>

使用 to_date 和 to_char 首先将您的字符串转换为日期,然后再转换回具有正确格式的字符串

 to_char(to_date(fieldname, 'DD-MM-YYYY'), 'MON-YYYY') 

推荐阅读