当前位置: 首页 > 面试题库 >

SQL查询不在两个日期之间

华聪
2023-03-14
问题内容

我需要有关SQL查询的帮助。

我正在尝试从表中选择所有记录,这些记录test_table将不能在两个日期“ 2009-12-15”和“ 2010-01-02”之间容纳。

这是我的表结构:

`start_date` date NOT NULL default '0000-00-00',
`end_date` date NOT NULL default '0000-00-00'

-----------------------------
 **The following record should not be selected:**

`start_date`, `end_date`
'2003-06-04', '2010-01-01'

我的查询:

SELECT *

FROM `test_table` 
WHERE

CAST('2009-12-15' AS DATE) NOT BETWEEN start_date and end_date 
AND 
CAST('2010-01-02' AS DATE) NOT BETWEEN start_date and end_date

知道为什么我的查询选择错误的记录吗?我应该将查询中的值顺序更改为类似以下内容:

start_date NOT BETWEEN CAST('2009-12-15' AS DATE) and CAST('2010-01-02' AS DATE)

非常感谢您的帮助


问题答案:

如何尝试:

select * from 'test_table'
where end_date < CAST('2009-12-15' AS DATE)
or start_date > CAST('2010-01-02' AS DATE)

它将返回所有与您的日期范围完全不重叠的日期范围。



 类似资料:
  • 问题内容: 我想选择两个日期之间的记录- startDate和endDate(它们是sql中的日期/时间格式)。我有以下sql查询,但它不起作用,有人可以告诉我我在做什么错吗? 问题答案: 我建议将日期转换为日期时间并进行比较,并使日期保持标准和一致。就像是: 注意:我假设您的startDate和endDate与您提供的字符串具有相同的格式。

  • 问题内容: 我有一个和。我想获取这两个日期之间的日期列表。谁能帮助我指出查询中的错误。 这是一个变量。 问题答案: 您应该将这两个日期放在单引号之间,例如。 或可以使用 请记住,第一个日期是包含日期,但第二个日期是排除日期,因为它实际上是“ 2011/02/27 00:00:00”

  • 这是我在SQL Server上的查询: 使用JPA存储库的正确语法是什么? 我试过这个: 并收到此错误: 验证失败,无法查询方法 public abstract java.lang.Long com.finance.biblioteca.repository.NoleggioRepository.countByUtenteIdAndLibroId(java.lang.Long,java.lang.

  • 问题内容: 我想查询一个mySQL表以提取两次和两次之间的数据。我知道如何使用“ between”调用对单个“ datetime”列执行此操作,但是我的列是一个“ date”列和一个“ time”列。我在网上可以找到的所有解决方案都是针对单个datetime列的。 我的范围从15:30的“ day1”到15:14的day1 + 1day 到目前为止,我可以获得以下范围(有效): 但是我显然需要合并

  • 问题内容: 以下查询: 什么也不返回。 我应该有足够多的数据来使查询工作。我究竟做错了什么? 问题答案: 您的第二个日期早于您的第一个日期(即,您正在查询2010年9月29日至2010年1月30日之间)。尝试颠倒日期的顺序:

  • 假设我给出了两个日期,如果差值是一个月,那么应该显示为30天。即使是月份也需要转换成我尝试过的带有年龄的天数(date,now()::timestamp,不带时区),但它给出了月份-日期-年份格式。例:10个月24天13:57:40.5265。但我需要遵循这条路。例如,如果有两个月的差异,那么我需要60天的输出。