加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – Oracle:仅按小时比较日期

发布时间:2020-12-12 08:42:28 所属栏目:MsSql教程 来源:网络整理
导读:我们有一个表DATE列d. 我想获得d列比某些值更大/更低的所有行,不管日期如何. 例如 | d |-------------------|2009/11/1 15:55:23|--------------------|2009/11/2 15:55:23|--------------------|2009/11/3 15:55:23|--------------------|2009/11/3 17:55:23
我们有一个表DATE列d.

我想获得d列比某些值更大/更低的所有行,不管日期如何.

例如

|       d          |
-------------------
|2009/11/1 15:55:23|
--------------------
|2009/11/2 15:55:23|
--------------------
|2009/11/3 15:55:23|
--------------------
|2009/11/3 17:55:23|
--------------------

例如,如果我想要在下午5点后标记的所有记录:

select d 
 from my_table 
where extract( hour from d ) > TO_DATE ('17:00:00','HH24:MI:SS')

这应该只返回一个记录

|2009/11/3 17:55:23|

我不知道这是否是最好的方法,但是我提取的功能有错误:

ORA-30076: invalid extract field for extract source 
Cause: The extract source does not contain the specified extract field.

有没有更好的方法来做到这一点?
有什么错误?提取仅适用于sysdate,如我发现的所有示例中?

提前致谢

解决方法

这个怎么样?
select d 
from my_table
where to_char(d,'HH24') > '16';

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读