首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Oracle DateTime的Where子句?

Oracle DateTime的Where子句?
EN

Stack Overflow用户
提问于 2011-07-19 23:03:53
回答 4查看 500.1K关注 0票数 95

我有类似这样的sql语句:

SELECT EMP_NAME, DEPT
FROM EMPLOYEE
WHERE TIME_CREATED >= TO_DATE('26/JAN/2011','dd/mon/yyyy')

->返回10行,TIME_CREATED = '26-JAN-2011‘

现在,当我这样做的时候,我没有得到任何行,

SELECT EMP_NAME, DEPT
    FROM EMPLOYEE
    WHERE TIME_CREATED = TO_DATE('26/JAN/2011','dd/mon/yyyy')

->取了大于的值

有什么原因吗?

EN

回答 4

Stack Overflow用户

发布于 2011-07-20 16:58:18

您还可以使用以下命令在查询中包含时间部分:

SELECT EMP_NAME
     , DEPT
  FROM EMPLOYEE 
 WHERE TIME_CREATED >= TO_DATE('26/JAN/2011 00:00:00', 'dd/mon/yyyy HH24:MI:SS');
票数 35
EN

Stack Overflow用户

发布于 2016-05-17 23:37:45

您还可以执行以下操作:

SELECT EMP_NAME, DEPT
FROM EMPLOYEE
WHERE TRUNC(TIME_CREATED) = DATE '2011-01-26'
票数 11
EN

Stack Overflow用户

发布于 2011-07-19 23:07:11

这是因为Oracle中的DATE列也包含时间部分。to_date()函数的结果是时间设置为00:00:00的日期,因此它可能与表中的任何行都不匹配。

您应该使用:

SELECT EMP_NAME, DEPT
FROM EMPLOYEE
WHERE trunc(TIME_CREATED) = TO_DATE('26/JAN/2011','dd/mon/yyyy')
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6749369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档