代码之家  ›  专栏  ›  技术社区  ›  Juan

如何比较access vba中的日期?

  •  0
  • Juan  · 技术社区  · 8 年前

    我有一个access数据库,有两个日期/小时字段“record_init_date”和“record_end_date”。

    我有一个查询来检索record_init_date>=init_date和record_end_date<=end_date的记录,如下所示:

    "SELECT * FROM TABLE WHERE (record_init_date >= #" & Me.selectorInitDate.Value & "#) AND (" & record_end_date & "<= #" & Me.selectorEndDate.Value & "#)"
    

    但结果并不是理想的结果。如何按日期筛选?

    编辑

    想象一下这样的一些示例数据:

    id = 1
    record_init_date = 10/11/2018
    record_end_date = 20/11/2018
    
    id = 2
    record_init_date = 03/12/2018
    record_end_date = 04/12/2018
    

    如果我运行查询:

    "SELECT ID FROM TABLE WHERE (record_init_date >= #01/11/2018#) AND (record_end_date <= #30/11/2018#)"
    

    预期的结果是id=1

    1 回复  |  直到 8 年前
        1
  •  1
  •   Gustav    8 年前

    可能需要应用格式才能获取日期表达式:

    "SELECT * FROM TABLE WHERE record_init_date >= #" & Format(Me.selectorInitDate.Value, "yyyy\/mm\/dd") & "# AND record_end_date <= #" & Format(Me.selectorEndDate.Value, "yyyy\/mm\/dd") & "#"