Microsoft Access SQL日期比较

时间:2009-07-09 13:59:24

标签: sql ms-access datetime

我正在使用Access 2007。

我需要返回日期/时间字段落在查询参数中指定的日期范围内的行。

以下内容不会出错,但似乎无效。

SELECT FIELDS FROM FOO
WHERE (FOO.CREATED_DTG BETWEEN [START_DTG] And [END_DTG]);

同样,这对我不起作用

SELECT FIELDS FROM FOO
WHERE (FOO.CREATED_DTG >= [START_DTG] And FOO.CREATED_DTG < [END_DTG]);

我怎样才能让它发挥作用?

更新:使用CDate似乎没有什么区别。

5 个答案:

答案 0 :(得分:2)

BLAH是田地或桌子的名字吗?当你选择BLAH我想象它命名一个字段,但是BLAH.CREATED_DTG没有意义 - 你的意思是FOO.CREATED_DTG吗?

答案 1 :(得分:1)

您的约会是否以#?

开头和结尾

答案 2 :(得分:1)

你也有&lt; =和&gt; = ...你可能只想在其中一个操作符上使用=。

答案 3 :(得分:1)

您确定CREATED_DTG字段是日期格式吗?

你试过吗

WHERE (FOO.CREATED_DTG BETWEEN #01/01/1971# And #07/07/2009#);

(或任何适合日期的方式 - 重点是,不是参数查询)

答案 4 :(得分:1)

表格FOO中是[START____DTG]和[END____DTG]字段,还是参数?如果它们是参数,那么您需要声明它们的类型以获得输入值的验证。如果是这样,您应该在SELECT语句的第一行之前添加它:

PARAMETERS [START_DTG] DateTime, [END_DTG] DateTime;