日期之间的MS访问查询

时间:2017-05-03 11:32:20

标签: sql ms-access

我有一个查询,它在指定日期范围内从表中检索记录并将它们插入到新表(VWDRSSTA)中。

虽然这些日期之间的特定搜索没有按预期工作。我正在使用 Where(Field)Between(Start)和(End)表达式但是有一个问题,因为它没有给出结束日期的任何记录。

这是我的查询

INSERT INTO VWDRSSTA ( SYSTEM, EREIGNIS, DATUM_ZEIT, ANTRAGSNUMMER, 
VORGANGSNUMMER, VERS_NR_INT, DUNKEL, DOK_ART )
SELECT VWD.SYSTEM, VWD.EREIGNIS, VWD.DATUM_ZEIT, VWD.ANTRAGSNUMMER, 
VWD.VORGANGSNUMMER, VWD.VERS_NR_INT, IIf(VWD.EREIGNIS="POL_AN" And 
VWD.DUNKEL=1,1,0) AS DUNKEL, IIf(VWD.EREIGNIS="EIN-ES" And 
VWD.DOK_ART="EN","EN","") AS DOK_ART
FROM VWD
WHERE ([VWD.DATUM_ZEIT]) Between [Forms]![overview]![start] And [Forms]!
[overview]![end];

我尝试过使用

WHERE ([VWD.DATUM_ZEIT]) >= [Forms]![overview]![start] <= [Forms]!
[overview]![end];

但是它给了我一个溢出错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

指定参数的数据类型:

PARAMETERS 
    [Forms]![overview]![start] DateTime,
    [Forms]![overview]![end] DateTime;
INSERT INTO VWDRSSTA 
    ( SYSTEM, 
    EREIGNIS, 
    DATUM_ZEIT, 
    ANTRAGSNUMMER, 
    VORGANGSNUMMER, 
    VERS_NR_INT, 
    DUNKEL, 
    DOK_ART )
SELECT 
    VWD.SYSTEM, 
    VWD.EREIGNIS, 
    VWD.DATUM_ZEIT, 
    VWD.ANTRAGSNUMMER,  
    VWD.VORGANGSNUMMER, 
    VWD.VERS_NR_INT, 
    IIf(VWD.EREIGNIS="POL_AN" And VWD.DUNKEL=1,1,0) AS DUNKEL, 
    IIf(VWD.EREIGNIS="EIN-ES" And VWD.DOK_ART="EN","EN",Null) AS DOK_ART
FROM 
    VWD
WHERE
    ([VWD.DATUM_ZEIT]) Between 
        [Forms]![overview]![start] And 
        [Forms]![overview]![end];

忽略时间部分:

WHERE
    [VWD.DATUM_ZEIT] >= [Forms]![overview]![start] And 
    [VWD.DATUM_ZEIT] < DateAdd, "d", 1, [Forms]![overview]![end]);