Oracle to_date/Trunc函数用法及date字段只精确到日期的问题

本文主要涉及三个问题:to_tate函数、Trunc函数的使用方法及date字段数据只获取日期不获取时间的问题


1、两个函数的使用方法:

(1)to_date()

        用法:TO_DATE('2016/4/13 0:00:00','yyyy-mm-dd hh24:mi:ss')


(2)TRUNC()

设:date='25-7月-16'

TO_DATE(date,  '精度'),精度有'DD'(日),'MM'(月),'YY'(年)三种;

①DD

TO_DATE(date,  'DD')   返回当前日期:25-7月-16;

②MM

TO_DATE(date,  'DD')    返回当月第一天日期:1-7月-16;

③YY

TO_DATE(date,  'DD')    返回当年第一天日期:1-1月-16;

其他格式详细参考博文:http://blog.csdn.net/oscar999/article/details/16839417


2、本文重点(日期查询只精确到日期,而忽略时分秒)

设:有一个表TableA,该表有一个CreatedDate字段

有如下查询语句:

SELECT CreatedDate   
FROM TableA
WHERE TRUNC(CreatedDate,'DD')  BETWEEN 
TRUNC(TO_DATE('2016/4/13 0:00:00','yyyy-mm-dd'),'DD') AND 
TRUNC(TO_DATE('2016/4/14 0:00:00','yyyy-mm-dd hh24:mi:ss','DD');

上述sql语句, 第一个Trunc函数,本意是将指定的 精确到秒的日期 '2016/4/13 0:00:00',转换为 只精确到日期后再参与相关计算。

但执行后会报错误:日期格式图片在转换整个输入字符串之前结束

错误原因是:to_date()函数的第一个参数“日期“字符串,与第二个参数“日期格式”字符串的精度必须一致。

上述sql语句,第二个Trunc函数的格式是正确格式。


3、一点工作经验

做一件事情累了的时候,就要停下来,休息一下或换做其他事情,不要强行加班解决,否则事倍功半。

比如:这次调这个sql语句问题,周五加班一个多小时,一句句调试,尝试各种转换,没有解决;周一,稍微分析一下,五分钟搞定。

当然这么说,有点绝对,有可能今天的五分钟正是基于上周的一个小时的尝试。

只是,分享出来,给大家一个参考。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值