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

Access 2007:查询两个短日期值之间的DateTime字段

郎同化
2023-03-14
问题内容

我有一个包含两个文本框供用户输入的表单。两个文本框的“属性”格式均设置为“短日期”。一个是“开始日期”,另一个是“结束日期”。我也有几个表,每个表都有一个DateTime字段(“studystartdatetime”)。我希望能够查询这些表,但将结果限制为DateTime字段介于输入的日期(含)之间的行。当前,条件是:

WHERE s.studystartdatetime BETWEEN forms!frmMain!txtstartdate AND forms!frmmain!txtenddate

但是,这不会返回在指定的结束日期发生的行。

我已经尝试过将CDate,Format和DateValue的每种组合都包装在其中一个或所有这些字段中,但是我总是收到相同的神秘错误:

html" target="_blank">表达式的输入错误,或者太复杂而无法求值。例如,一个数字表达式可能包含太多复杂的元素。尝试通过将表达式的一部分分配给变量来简化表达式。

我尝试过的一些条件示例:

WHERE CDate(Format(s.studystartdatetime, "yyyy/mm/dd")) BETWEEN forms!frmMain!txtstartdate AND forms!frmmain!txtenddate

WHERE DateValue(Format(s.studystartdatetime, "yyyy/mm/dd")) BETWEEN forms!frmMain!txtstartdate AND forms!frmmain!txtenddate

WHERE CDate(Format(s.studystartdatetime, "yyyy/mm/dd")) BETWEEN CDate(Format(forms!frmMain!txtstartdate, "yyyy/mm/dd")) AND CDate(Format(forms!frmmain!txtenddate, "yyyy/mm/dd"))

WHERE DateValue(Format(s.studystartdatetime, "yyyy/mm/dd")) BETWEEN CDate(Format(forms!frmMain!txtstartdate, "yyyy/mm/dd")) AND CDate(Format(forms!frmmain!txtenddate, "yyyy/mm/dd"))

WHERE DateValue(Format(s.studystartdatetime, "Short Date")) BETWEEN forms!frmMain!txtstartdate AND forms!frmmain!txtenddate

等等。

任何对此的投入将不胜感激:)


问题答案:

发生的情况是,您输入的短日期在用户输入的当天开始的午夜产生datetime值。因此,范围2009-1-1到2009-1-10(或系统上使用的任何短日期格式)正在搜索从1月1日
开始 到1月10日 开始 的事件,但不包括发生在1月10日晚些时候。

若要更正,请在用户输入搜索的结束日期前加1。搜索时间从1月1日开始到1月11日开始,包括1月10日的所有事件。

最终,发生在1月11日午夜 恰好 发生的事件可以通过这种方式进入您的结果,因此,您应该使用BETWEEN而不是

studystartdatetime >= forms!frmMain!txtStartDate AND studystartdatetime < forms!frmMain!txtEndDate + 1



 类似资料:
  • 这是我在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 到目前为止,我可以获得以下范围(有效): 但是我显然需要合并

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

  • 问题内容: 我需要有关SQL查询的帮助。 我正在尝试从表中选择所有记录,这些记录将不能在两个日期“ 2009-12-15”和“ 2010-01-02”之间容纳。 这是我的表结构: 我的查询: 知道为什么我的查询选择错误的记录吗?我应该将查询中的值顺序更改为类似以下内容: 非常感谢您的帮助 问题答案: 如何尝试: 它将返回所有与您的日期范围完全不重叠的日期范围。

  • 问题内容: 我从Stackoverflow那里获得了这段代码,并对其进行了少许更改以适应今天的日期。 我想检查今天是否适合两个日期之间。但这是行不通的。我想念什么? 问题答案: 编辑: 使用<=或> =来计算今天的日期 这是您的代码的正确答案。只需使用strtotime()php函数

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