暂无图片
返回数说广场
olabll1
2024-11-20
Oracle如何启动SESSION级别的TRACE? DBMS_SESSION.SET_SQL_TRACE ALTER SESSION SET SQL_TRACE = TRUE 以下哪种改写,与to_char(order_date,'yyyymm')='201910'的含义是等价的?(注,order_date列为date类型数据) order_date >= to_date('20191001','yyyymmdd') and order_date < to_date('20191101','yyyymmdd') 解析: to_char(order_date,'yyyymm')='201910'的含义是过滤出所有order_date是2019年10月的记录。而order_date=to_date('201910','yyyymm') 只会过滤出order_date为2019年10月1日0点0分0秒的记录;而order_date between '20191001' and '20191031',数据库会将'20191001'和'20191031'转换为对应的日期的0点0分0秒,即当天的开始时刻。这样,就会造成order_date的值是2019年10月31日0点0分0秒之后,但是在2019年10月31日23点59分59秒及之前的记录被漏掉,同理,order_date between to_date('20191001','yyyymmdd') and to_date('20191031','yyyymmdd')这个选项也是同样的问题。所以,只有order_date >= to_date('20191001','yyyymmdd') and order_date < to_date('20191101','yyyymmdd')是和to_char(order_date,'yyyymm')='201910'等价的。
#日有所学#
0
暂无图片 0
81
分享

评论

热门数说