MS Access,查询从第二天早上6点到早上6点从db中选择*

时间:2016-05-11 12:18:23

标签: sql date ms-access-2010

我正在采取大量方法来实现这一目标。 我需要根据表dbAwarieZamkniete生成报告。

我需要从ALL抓取dbAwarieZamkniete,所以当我从访问表单中的文本框中选择short date时,基于我想要运行query将获取数据。

我想说我需要从10.05.2016开始的记录,这意味着我需要记录从10.05.2016 06:00到2016年6月11日06:00。

我的方法有所不同,我试过union例如,我不会在这里粘贴所有这些,这只是一个例子:

SELECT *
FROM   dbAwarieZamkniete AS AwaZam
WHERE  Format(AwaZam.dataZgloszenia, "d-m-yyyy") = '03.09.2015'
AND ( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '06:00' AND '23:59' )

UNION ALL

SELECT *
FROM   dbAwarieZamkniete AS AwaZam
WHERE  Format(AwaZam.dataZgloszenia, "d-m-yyyy") = '04.09.2015'
AND (( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '00:00' AND '06:00' );

dataZgloszenia包含日期(作为d.m.yyyy) - 短日期

godzinaZgloszenia包含时间(h:m) - 短时间

2 个答案:

答案 0 :(得分:3)

始终将日期作为日期处理,而不是文本,没有例外。

所以:

SELECT *
FROM   dbAwarieZamkniete AS AwaZam
WHERE  AwaZam.dataZgloszenia + AwaZam.godzinaZakonczenia
       Between 
           DateAdd("h", 6, #2016/05/10 00:00:00#)
           And
           DateAdd("h", 6 + 24, #2016/05/10 23:59:59#)

使用文本框中的日期:

SELECT *
FROM   dbAwarieZamkniete AS AwaZam
WHERE  AwaZam.dataZgloszenia + AwaZam.godzinaZakonczenia
       Between 
           DateAdd("h", 6, DateValue([Forms]![YourForm]![YourTextbox]))
           And
           DateAdd("h", 6 + 24, DateValue([Forms]![YourForm]![YourTextbox]) + #23:59:59#)

答案 1 :(得分:0)

  1. 您将日期设为d.m.yyyy,但在您使用的代码中 d-m-yyyy

    SELECT *
    FROM   dbAwarieZamkniete AS AwaZam
    WHERE  Format(AwaZam.dataZgloszenia, "d.m.yyyy") = '03.09.2015'
    AND ( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '06:00' AND '23:59' )
    
    UNION ALL
    
    SELECT *
    FROM   dbAwarieZamkniete AS AwaZam
    WHERE  Format(AwaZam.dataZgloszenia, "d.m.yyyy") = '04.09.2015'
    AND (( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '00:00' AND '06:00' );
    
  2. 如果需要,您可以同时加入这两个条件。

    SELECT *
    FROM   dbAwarieZamkniete AS AwaZam
    WHERE (
        Format(AwaZam.dataZgloszenia, "d.m.yyyy") = '03.09.2015' 
        AND 
        (Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '06:00' AND '23:59' )
          )
    
    or (
        Format(AwaZam.dataZgloszenia, "d.m.yyyy") = '04.09.2015' 
        AND 
        ( Format(AwaZam.godzinaZakonczenia, 'hh:mm') BETWEEN '00:00' AND '06:00' )
        )