sql访问如何在日期之间返回

时间:2010-07-02 19:20:37

标签: sql ms-access vba

如何在MS Access中指定日期范围?以下查询是否正确?我必须将"2/1/2010"放在引号中吗?或者我必须做date(2/1/2010)之类的事情吗?

SELECT [Occurrence Number] as Fld
  FROM [Lab Occurrence Form]
 WHERE [Practice Code]="ACCIM"
   AND [1 0 Preanalytical (Before Testing)]="1.1 Specimen Mislabeled"
   AND ([Occurrence Date] Between 2/1/2010 and 2/28/2010);

以下给我一个类型不匹配

SELECT [Occurrence Number] as Fld FROM [Lab Occurrence Form] WHERE [1 0 Preanalytical (Before Testing)]="1.1 Specimen Mislabeled" AND [Occurrence Date] between "1/1/2009" and "2/2/2010";

4 个答案:

答案 0 :(得分:18)

ms-access使用Jet引擎,它使用#作为日期文字:

SELECT Orders.*
  FROM Orders
 WHERE Orders.OrderDate Between #3/1/96# And #6/30/96#;

答案 1 :(得分:2)

AND ([Occurrence Date] Between #2/1/2010# and #2/28/2010#

这就是你如何告诉Access,将某些内容解释为日期时间。

答案 2 :(得分:0)

Ms access数据库使用“#”表示日期。因此,如果你想写13/12/2013作为ms访问可接受的形式,那么你必须把它写成#13/12/2013#。

一个名为“test”的表的sql查询示例,其中包含两个字段id和date。

select * from test where date =#13/12/2013#。

vb.net 2008的sql查询示例,用于查找两个日期之间的数据库记录

“select * from info_session i_date介于#”&起始日期“#和#”&结束& “#”

答案 3 :(得分:0)

select(在Microsoft中)使用的日期定义为:"#" +月+" /" + day +" /" +年+"#"

田间日数是01,02 ---,31
字段月份是数字01,02 ... 12
现场年份是2014年,2015年......等等。

您可以使用dinamically构建SQL字段

ES。在vbscript中

dt1="#"&month(date1)&"/"&day(Date1)&"/"&year(Date1)&"#"
dt2="#"&month(date2)&"/"&day(Date2)&"/"&year(Date2)&"#"

然后您可以在字段SQL中使用select

表Orders有一个名为OrderDate的字段 ES。

SQL="select * from Orders where OrderDate Between " & dt1 & " and " dt2

现在您可以访问数据库