MyRcp技术论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用新浪微博连接

一步搞定

搜索
查看: 257|回复: 6

[已解决] oracle日期比较 [复制链接]

Rank: 2Rank: 2

  • TA的每日心情

    2011-7-25 09:34:10
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    升级  59.33%

    积分
    139
    威望
    0
    金币
    127 个
    贡献
    0
    帖子
    12
    精华
    0
    发表于 2011-7-21 15:39:02 |显示全部楼层
    oracle 数据库 tableA 字段CREATE_DATE 是CHAR型,现在想查询出小于 昨天的所有数据:
    SELECT * FROM TABLEA WHERE TO_DATE(CREATE_DATE,'YYYYMMDD') < SYSDATE-1;
    但是 CREATE_DATE有些为null的情况,所以改为如下写法:
    SELECT * FROM TABLEA WHERE (CREATE_DATE IS NLL OR TO_DATE(CREATE_DATE,'YYYYMMDD') < SYSDATE-1));
    但是还是报ORA-01843:无效的月份这样的错,求高人解答。

    Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    2011-11-8 10:23:42
  • 签到天数: 99 天

    [LV.6]常住居民II

    积分
    3973
    威望
    296
    金币
    2569 个
    贡献
    600
    帖子
    207
    精华
    1
    发表于 2011-7-21 15:44:35 |显示全部楼层
    如果CREATE_DATE为null的情况下,希望能查出什么数据
    傻子不多,坏人哪里够用

    使用道具 举报

    Rank: 2Rank: 2

  • TA的每日心情

    2011-7-25 09:34:10
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    升级  59.33%

    积分
    139
    威望
    0
    金币
    127 个
    贡献
    0
    帖子
    12
    精华
    0
    发表于 2011-7-21 15:46:05 |显示全部楼层
    肖坤玉 发表于 2011-7-21 15:44
    如果CREATE_DATE为null的情况下,希望能查出什么数据

    为null的情况下也查询出来

    使用道具 举报

    Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    2011-11-8 10:23:42
  • 签到天数: 99 天

    [LV.6]常住居民II

    积分
    3973
    威望
    296
    金币
    2569 个
    贡献
    600
    帖子
    207
    精华
    1
    发表于 2011-7-21 15:56:19 |显示全部楼层
    TO_DATE(nvl(CREATE_DATE, '19900101') ,'YYYYMMDD')

    用nvl这个函数,如果为空,就用最早的时间代替
    傻子不多,坏人哪里够用

    使用道具 举报

    Rank: 2Rank: 2

  • TA的每日心情

    2011-7-25 09:34:10
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    升级  59.33%

    积分
    139
    威望
    0
    金币
    127 个
    贡献
    0
    帖子
    12
    精华
    0
    发表于 2011-7-21 15:58:26 |显示全部楼层
    SELECT * FROM TABLEA WHERE (CREATE_DATE IS NLL OR TO_DATE(CREATE_DATE,'YYYYMMDD') < SYSDATE-1))
    这句也应该能查出来得吧?先判断是否为null如果为Null则不进行后面的条件

    使用道具 举报

    Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    2011-11-8 10:23:42
  • 签到天数: 99 天

    [LV.6]常住居民II

    积分
    3973
    威望
    296
    金币
    2569 个
    贡献
    600
    帖子
    207
    精华
    1
    发表于 2011-7-21 16:10:16 |显示全部楼层
    可以,但是是 is null 不是 is nll

    你说报ORA-01843:无效的月份这样的错,应该是某条CREATE_DATE记录,并不是空,而且格式不对,所以to_date出错
    傻子不多,坏人哪里够用

    使用道具 举报

    Rank: 2Rank: 2

  • TA的每日心情

    2011-7-25 09:34:10
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    升级  59.33%

    积分
    139
    威望
    0
    金币
    127 个
    贡献
    0
    帖子
    12
    精华
    0
    发表于 2011-7-21 16:18:10 |显示全部楼层
    额,是 is null ,少打了个字符,用nvl可以解决,谢谢了。

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    无觅相关文章插件

    手机版|MyRcp

    GMT+8, 2012-2-23 14:06 , Processed in 2.683836 second(s), 18 queries .

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    回顶部