【发布时间】:2019-05-15 06:26:48
【问题描述】:
我在语法查询 dbms oracle 以按日期过滤时遇到困难,但我只想按日期过滤,格式为 (dd/mm)。我的数据库记录是(dd/mm/yyyy)。查询如何按日期 mm/dd 过滤
tablename.fieldname >= '01/01'
【问题讨论】:
-
请提供样本数据和期望的结果。我不明白在这种情况下如何使用
>=。
我在语法查询 dbms oracle 以按日期过滤时遇到困难,但我只想按日期过滤,格式为 (dd/mm)。我的数据库记录是(dd/mm/yyyy)。查询如何按日期 mm/dd 过滤
tablename.fieldname >= '01/01'
【问题讨论】:
>=。
with s as (
select date '2019-01-01' + level * 15 dt from dual connect by level <= 20)
select s.*
from s
where to_number(to_char(dt, 'mmdd')) > 0501;
DT
-------------------
2019-05-16 00:00:00
2019-05-31 00:00:00
2019-06-15 00:00:00
2019-06-30 00:00:00
2019-07-15 00:00:00
2019-07-30 00:00:00
2019-08-14 00:00:00
2019-08-29 00:00:00
2019-09-13 00:00:00
2019-09-28 00:00:00
2019-10-13 00:00:00
2019-10-28 00:00:00
12 rows selected.
【讨论】:
'15/12' 小于 '23/01,尽管 12 月 15 日晚于 1 月 23 日。您必须先按月排序,然后按天排序。
你尝试过这样的事情吗?虽然它不是你想要的格式
SELECT * from yourTableName
WHERE EXTRACT(month from yourDateColumn) >= '1'
AND EXTRACT(day from yourDateColumn) >= '1';
可能的相关问题:
【讨论】: