我在一个表中有以下数据
入院时间:日期和时间是两个不同的字段,以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之间的所有记录。
查询还应该有从用户输入' date‘的选项(只有日期和时间可以是第一天早上7点到第二天早上6点59分之间的固定间隔)-例如使用参数。我使用access 2003。我尝试了几个查询,但不能完善一个-我没有得到准确的结果。谁来帮帮忙。
谢谢,
致以敬意,
发布于 2012-06-24 06:59:17
如果只有一个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'和AdmitTime。
发布于 2012-06-24 07:07:13
所有办公日期都是数字,因此您可以添加:
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:00https://stackoverflow.com/questions/11173616
复制相似问题