我在桌子上有以下数据
tbl门票:日期和时间是两个不同的字段,以dd/mm/yyyy
格式
AdmitDate AdmitTime
1/6/2012 00:00
3/6/2012 10:00
3/6/2012 19:00
4/6/2012 20:38
5/6/2012 21:00
7/6/2012 03:00
我想写一个查询以显示3/6/2012 07:00:00和5/6/2012 06:59:59之间的所有记录。
查询还应该具有从用户输入“日期”的选项(只有日期和时间可以是第一天上午7点到第二天上午6点59分之间的固定间隔) - 例如使用参数。 我使用Access 2003。 我尝试了几个查询,但我无法完善 - 我没有得到准确的结果。 有人请帮忙。
谢谢,
此致
答案 0 :(得分:3)
如果只有一个DATETIME
列,则查询条件很容易构建:
WHERE AdmitDateTime >= '2012-06-03 07:00'
AND AdmitDateTime < '2012-06-05 07:00'
由于你不能这样做,并且因为Access有自己的日期和时间功能,我认为这将有效:
WHERE DateValue(AdmitDate) + AdmitTime
>= DateValue([InputDate]) + TimeValue('07:00')
AND DateValue(AdmitDate) + AdmitTime
< DateValue([InputDate]) + 2 + TimeValue('07:00')
DateValue()
次调用是为了确保用户或AdmitDate
列中传递的值中的任何时间部分都被切断,只有'07:00'
和{{1使用。
答案 1 :(得分:0)
所有办公日期都是数字,因此您可以添加:
SELECT [admitdate]+[admittime] AS Expr1
FROM dt
WHERE ((([admitdate]+[admittime])
Between #6/3/2012 7:0:0# And #6/5/2012 6:59:59#));
以上内容可以在查询设计窗口中使用,但在其他任何地方,例如VBA,都会遇到区域设置问题。
编辑重新评论
Result
03/06/2012 10:00:00
03/06/2012 19:00:00
04/06/2012 20:38:00