MS Access,从早上 6 点到第二天早上 6 点从数据库中选择 * 的查询
MS Access, Query that selects * from db from 6AM to 6AM next day
我正在采取大量方法来使其发挥作用。
我需要根据 table dbAwarieZamkniete
.
生成报告
我需要从 dbAwarieZamkniete
中获取 ALL
,所以当我 select 从访问表单的文本框中获取 short date
时,基于此我想 运行 query
会抓取数据。
假设我需要 2016 年 5 月 10 日的记录,这意味着我需要 2016 年 5 月 10 日 06:00 到 2016 年 5 月 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)- 短时间
您将日期设置为 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' );
如果需要,可以将两个条件合并在一起。
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' )
)
始终将日期作为日期处理,而不是文本,无一例外。
所以:
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#)
我正在采取大量方法来使其发挥作用。
我需要根据 table dbAwarieZamkniete
.
我需要从 dbAwarieZamkniete
中获取 ALL
,所以当我 select 从访问表单的文本框中获取 short date
时,基于此我想 运行 query
会抓取数据。
假设我需要 2016 年 5 月 10 日的记录,这意味着我需要 2016 年 5 月 10 日 06:00 到 2016 年 5 月 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)- 短时间
您将日期设置为
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' );
如果需要,可以将两个条件合并在一起。
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' ) )
始终将日期作为日期处理,而不是文本,无一例外。
所以:
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#)