前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle|to_date()格式化日期【坑】

Oracle|to_date()格式化日期【坑】

作者头像
Java小技巧
发布2022-05-23 12:33:45
1K0
发布2022-05-23 12:33:45
举报
文章被收录于专栏:Java小技巧

今天调整报表检索条件的时候遇到to_date()格式化日期的问题,明细如下:

1.总数据 159条

代码语言:javascript
复制
select * from daily_file_information;

2.查询每月数据 3月-139条 4月-16条 5月-4条

代码语言:javascript
复制
select to_char(dfi_create_time,'yyyy-mm'),count(1) from daily_file_information  group by to_char(dfi_create_time,'yyyy-mm');

3.第一种查询方式 【...between...and...】

SQL1:结果159条

代码语言:javascript
复制
select count(1) from daily_file_information where 1=1 and to_char(dfi_create_time,'yyyy-mm') between '2020-03' and '2020-05' ;

SQL2:结果155条

代码语言:javascript
复制
select count(1) from daily_file_information where 1=1 and dfi_create_time between to_date('2020-03','yyyy-mm') and to_date('2020-05','yyyy-mm')  ;

4.第二种查询方式 【...大于等于...小于等于...】

SQL3:结果159条

代码语言:javascript
复制
select count(1) from daily_file_information where 1=1 and to_char(dfi_create_time,'yyyy-mm') >= '2020-03' and to_char(dfi_create_time,'yyyy-mm') <= '2020-05' ;

SQL4:结果155条

代码语言:javascript
复制
select count(1) from daily_file_information where 1=1 and dfi_create_time >= to_date('2020-03','yyyy-mm') and dfi_create_time <= to_date('2020-05','yyyy-mm')  ;

5.差异数据:to_date()格式化4条5月份数据

to_date('2020-05') 结果为:2020/05/01

结论:

经过几个SQL的查询方式对比发现以to_date()转换数据查询的结果可能与预期结果数据不一致。

一般情况下在做类似时间过滤的时候我还是比较喜欢用to_char()的方式,根据这几个查询的结论而言还是建议大家慎用to_date()这个函数。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java小技巧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档