我有类似这样的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')
->取了大于的值
有什么原因吗?
发布于 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');
发布于 2016-05-17 23:37:45
您还可以执行以下操作:
SELECT EMP_NAME, DEPT
FROM EMPLOYEE
WHERE TRUNC(TIME_CREATED) = DATE '2011-01-26'
发布于 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')
https://stackoverflow.com/questions/6749369
复制相似问题