sql - 将日期转换为月年格式并在查询中传递
问题描述
我有一个 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
解决方案
更新
显然该列不是字符串而是日期时间,这意味着转换只是
to_date(fieldname, 'MON-YYYY')
但是,如果该列在 Where 子句中使用,则根本不应该进行转换。
——</p>
使用 to_date 和 to_char 首先将您的字符串转换为日期,然后再转换回具有正确格式的字符串
to_char(to_date(fieldname, 'DD-MM-YYYY'), 'MON-YYYY')
推荐阅读
- php - 为什么我不能将输入类型日期的最小值设置为今天?
- r - fread 和 zcat 问题
- sql-server - 我怎样才能使这个 SQL 更高效
- python - 测试表格对有效数据有效,无需发布数据 django
- javascript - SyntaxError:位置 650xx 的 JSON 中的意外标记 [Char]
- scala - Spark left_outer join 正在返回两个列表中都存在的项目
- xamarin - 如何基于其中包含 StackLayout 的 Frame 创建新的 Xamarin 元素?
- spring-integration - 不支持发送,因为没有配置请求通道
- java - Java ServerSocket 防止客户端排队
- c - strcmp 生成核心转储