日期字段的查询

Define_ling 2016-11-11 03:50:44
对于一个日期字段(2016-11-11 15:00:00),查询该字段大于大于某个范围区间,你们一般怎么查?
注:如起止时间为当天,希望查处当天的数据

我写了三种方式,都觉得不太好...哈哈

方式一
AND CM.DELIVERY_DATE >= trunc(to_date('20140101', 'yyyymmdd'))
AND trunc(CM.DELIVERY_DATE) < = to_date('20141230', 'yyyymmdd')

方式二:
AND to_char(CM.DELIVERY_DATE, 'yyyyMMdd') >= '20141219'
AND to_char(CM.DELIVERY_DATE, 'yyyyMMdd') < = '20141219'

方式三:
AND CM.DELIVERY_DATE >= to_date('20141219'||'00:00:00', 'yyyymmdd hh24:mi:ss')
AND trunc(CM.DELIVERY_DATE) < = to_date('20141219'||'23:59:59', 'yyyymmdd hh24:mi:ss')

你们一般用那种,还是其他方式
...全文
295 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sych888 2016-11-12
  • 打赏
  • 举报
回复
可以采用一楼的方式,这样方便使用索引 你所列出的三种方式,很容易造成索引无法使用
卖水果的net 2016-11-12
  • 打赏
  • 举报
回复
尽量避免在列上做计算,比如 trunc 、to_char 这些函数;
Renkey 2016-11-11
  • 打赏
  • 举报
回复
1,某一天 trunc(CM.DELIVERY_DATE) = '01-jan-14' 2,期间 trunc(CM.DELIVERY_DATE) between '01-jan-14' and '31-dec-14' 自由发挥吧。
sxq129601 2016-11-11
  • 打赏
  • 举报
回复
AND CM.DELIVERY_DATE >= trunc(to_date('20140101', 'yyyymmdd')) AND CM.DELIVERY_DATE < to_date('20141230', 'yyyymmdd') +1

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧