检查当前日期是不是在两个日期之间 Oracle SQL

     2023-02-25     232

关键词:

【中文标题】检查当前日期是不是在两个日期之间 Oracle SQL【英文标题】:Check if current date is between two dates Oracle SQL检查当前日期是否在两个日期之间 Oracle SQL 【发布时间】:2014-06-17 09:30:31 【问题描述】:

如果当前日期在 Oracle SQL 的两个日期之间,我想选择 1

我在阅读其他问题后写了一个SQL。

https://***.com/questions/2369222/oracle-date-between-query

https://***.com/questions/2399753/select-from-table-by-knowing-only-date-without-time-oracle

但它只返回空值。 sysdate 是当前日期,即01/05/2014,日期格式为DD/MM/YYYY

我写的SQL是:

select 1 from dual 
WHERE to_date(sysdate,'DD/MM/YYYY') 
BETWEEN TO_DATE('28/02/2014', 'DD/MM/YYYY')
AND TO_DATE('20/06/2014', 'DD/MM/YYYY');

select 1 from dual 
WHERE to_date(sysdate,'DD/MM/YYYY') >= TO_DATE('28/02/2014', 'DD/MM/YYYY') 
AND to_date(sysdate,'DD/MM/YYYY') < TO_DATE('20/06/2014', 'DD/MM/YYYY'); 

【问题讨论】:

您需要TO_DATE() sysdate 吗?肯定已经是约会了 感谢paul,根据Gordon Linoffs 下面sysdate的解决方案已经是约会了。 你不需要 SQL - 在 PL/SQL 中你可以像if sysdate between date '2014-02-28' and date '2014-06-21' then v := 1; end if; 谢谢Jeffrey Kemp 这对我也很好。 【参考方案1】:

您无需将to_date() 应用于sysdate。它已经在那里了:

select 1
from dual 
WHERE sysdate BETWEEN TO_DATE('28/02/2014', 'DD/MM/YYYY') AND TO_DATE('20/06/2014', 'DD/MM/YYYY');

如果您关心日期的时间部分,请使用trunc()

select 1
from dual 
WHERE trunc(sysdate) BETWEEN TO_DATE('28/02/2014', 'DD/MM/YYYY') AND
                             TO_DATE('20/06/2014', 'DD/MM/YYYY');

【讨论】:

trunc(sysdate) 在此示例中(双表)可以处理日期的时间部分,但在具有索引 DATE 字段的实际表中,它可能会阻止 Oracle 使用相应的索引。我建议不要使用“between”子句,而是在这里使用比较运算符:where DATE_FIELD &gt;= TO_DATE('28/02/2014', 'DD/MM/YYYY') and DATE_FIELD &lt; TO_DATE('20/06/2014', 'DD/MM/YYYY') + 1 另一种处理索引的方法来自dba-oracle.com/t_sql_display_all_days_between_two_dates.htm:select ... where trunc(ORDER_DATE) between ... 注意:使用 trunc 函数将使 order_date 上的索引无效,您可能希望在上创建一个基于函数的临时索引trunc(order_date) @Aba 。 . .我错过了什么吗?这个问题中没有order_date,也没有双索引。 @GordonLinoff 我只是在评论 trunc() 和 anilech 在处理真实表时发现的索引问题。【参考方案2】:
SELECT to_char(emp_login_date,'DD-MON-YYYY HH24:MI:SS'),A.* 
FROM emp_log A
WHERE emp_login_date BETWEEN to_date(to_char('21-MAY-2015 11:50:14'),'DD-MON-YYYY HH24:MI:SS')
AND
to_date(to_char('22-MAY-2015 17:56:52'),'DD-MON-YYYY HH24:MI:SS') 
ORDER BY emp_login_date

【讨论】:

一般来说,如果答案包含对代码的用途的解释,以及为什么在不介绍其他人的情况下解决问题的原因,答案会更有帮助。 (该帖子至少被一位用户标记,大概是因为他们认为应该删除没有解释的答案。) 这很有魅力。只需要了解 to_date 的格式。【参考方案3】:

TSQL: 日期 - 需要寻找两个日期之间的日期间隔

select
distinct
e1.enddate,
e3.startdate,
DATEDIFF(DAY,e1.enddate,e3.startdate)-1 as [Datediff]
from #temp e1 
   join #temp e3 on e1.enddate < e3.startdate          
       /* Finds the next start Time */
and e3.startdate = (select min(startdate) from #temp e5
where e5.startdate > e1.enddate)
and not exists (select *  /* Eliminates e1 rows if it is overlapped */
from #temp e5 
where e5.startdate < e1.enddate and e5.enddate > e1.enddate);

【讨论】:

SQL函数检查日期是不是在另一个表的2个日期之间

】SQL函数检查日期是不是在另一个表的2个日期之间【英文标题】:SQLFunctioncheckifadateisbetween2datesfromanothertableSQL函数检查日期是否在另一个表的2个日期之间【发布时间】:2018-10-1107:00:54【问题描述】:我正在使用一个函数,该函... 查看详情

需要 mongodb 查询来检查日期是不是在存储在集合文档中的两个日期之间[重复]

】需要mongodb查询来检查日期是不是在存储在集合文档中的两个日期之间[重复]【英文标题】:NeededmongodbquerytocheckwhetherdateisbetweentwoDatesstoredincollectiondocument[duplicate]需要mongodb查询来检查日期是否在存储在集合文档中的两个日期之... 查看详情

检查日期是不是在另一个数据框中的两个日期之间,如果是则操作日期

】检查日期是不是在另一个数据框中的两个日期之间,如果是则操作日期【英文标题】:Checkifdateisbetweentwodatesinanotherdataframe,andmanipulatedateifitis检查日期是否在另一个数据框中的两个日期之间,如果是则操作日期【发布时间】:20... 查看详情

访问 VBA 检查两个日期字段之间的时间段是不是不跨越特定日期

】访问VBA检查两个日期字段之间的时间段是不是不跨越特定日期【英文标题】:AccessVBAcheckthatperiodbetweentwodatefieldsdoesnotcrossspecificdate访问VBA检查两个日期字段之间的时间段是否不跨越特定日期【发布时间】:2016-05-2705:06:18【问题... 查看详情

在 T-SQL 中检查两个日期之间的日期

】在T-SQL中检查两个日期之间的日期【英文标题】:CheckdatebetweentwodatesinT-SQL【发布时间】:2013-09-1007:53:39【问题描述】:我有一个存储过程,想要检查日期是否在固定日期和当前日期/时间之间(使用GETDATE()):SELECTa,bFROMmyTblWHERE... 查看详情

在两列上创建索引以检查日期是不是介于这两个列之间

】在两列上创建索引以检查日期是不是介于这两个列之间【英文标题】:Creatingindexesontwocolumnstocheckifadatefallsbetweenthosetwo在两列上创建索引以检查日期是否介于这两个列之间【发布时间】:2016-09-0320:04:13【问题描述】:我正在使... 查看详情

Java:检查当前日期是不是在特定日期范围内[重复]

】Java:检查当前日期是不是在特定日期范围内[重复]【英文标题】:Java:Checkifcurrentdateisinrangeofspecificdays[duplicate]Java:检查当前日期是否在特定日期范围内[重复]【发布时间】:2016-02-1512:35:53【问题描述】:我正在努力解决以下问... 查看详情

检查日期是不是在 sql 中的日期范围之间(不检查年份)

】检查日期是不是在sql中的日期范围之间(不检查年份)【英文标题】:checkifdatesarebetweendaterangeinsql(checkwithoutyear)检查日期是否在sql中的日期范围之间(不检查年份)【发布时间】:2012-05-1505:35:29【问题描述】:我正在开发一个... 查看详情

如何检查特定学期的旅行是不是设置在从日期到日期之间

】如何检查特定学期的旅行是不是设置在从日期到日期之间【英文标题】:Howtocheckiftripforparticularsemesterissetbetweenfromdateandtodate如何检查特定学期的旅行是否设置在从日期到日期之间【发布时间】:2019-01-1204:50:04【问题描述】:这... 查看详情

如何检查两个日期之间的差异(以秒为单位)?

】如何检查两个日期之间的差异(以秒为单位)?【英文标题】:HowdoIcheckthedifference,inseconds,betweentwodates?【发布时间】:2011-05-2017:38:32【问题描述】:必须有一种更简单的方法来做到这一点。我有想要经常刷新的对象,所以我想... 查看详情

查找表中的任何日期是不是在两个日期之间

】查找表中的任何日期是不是在两个日期之间【英文标题】:FindingifAnydateinatableisbetween2dates查找表中的任何日期是否在两个日期之间【发布时间】:2021-06-0716:14:03【问题描述】:我有一个SQL查询,我需要找出与特定客户相关的表... 查看详情

检查来自 db 的日期是不是从当前日期过去两周

】检查来自db的日期是不是从当前日期过去两周【英文标题】:Checkifdatefromdbpassedtwoweeksfromthecurrentdate检查来自db的日期是否从当前日期过去两周【发布时间】:2014-10-2220:05:31【问题描述】:所以我有两个日期:$data_db=2014-08-24;$cure... 查看详情

检查两个日期之间的时间戳

】检查两个日期之间的时间戳【英文标题】:checkiftimestampbetween2dates【发布时间】:2022-01-2304:51:53【问题描述】:我将日期存储为mongo中的时间戳,例如,1564444800000000000。我想检查时间戳是否介于2021年7月1日和2021年7月这两个日... 查看详情

在插入 SQLite 之前检查表 B 中的日期是不是介于表 A 中的日期之间

】在插入SQLite之前检查表B中的日期是不是介于表A中的日期之间【英文标题】:CheckingifdateintableBisbetweendateinTableAbeforeinsertingSQLite在插入SQLite之前检查表B中的日期是否介于表A中的日期之间【发布时间】:2021-12-3012:41:42【问题描述... 查看详情

理货表在两个日期之间插入缺失的日期? SQL

...间缺少日期(非工作日)的行。据我所知,我不知道如何检查该 查看详情

查找大型数据集中的两个日期之间是不是有假期?

】查找大型数据集中的两个日期之间是不是有假期?【英文标题】:Findifthereisanyholidaysbetweentwodatesinalargedataset?查找大型数据集中的两个日期之间是否有假期?【发布时间】:2019-07-0723:26:08【问题描述】:我正在处理一个包含大... 查看详情

如何在java中计算两个日期之间的年龄或差异

...】:我想得到两个日期之间的月数。日期是某人的生日和当前日期。所以我得到两个日期之间的年数,而不是月数..假设我的日期是06/09/2011和06/11/2012。所以我希望答案是1年2个月。我得到了年份,但没有月份。请帮 查看详情

如何查看一个日期是不是在其他两个日期之间,以及使用的时间和剩余的时间?

】如何查看一个日期是不是在其他两个日期之间,以及使用的时间和剩余的时间?【英文标题】:Howtoseeifadateisbeweentwootherdates,andthetimeusedandthetimeremaining?如何查看一个日期是否在其他两个日期之间,以及使用的时间和剩余的时间... 查看详情