Ms Access选择大于日期时间范围的数据

11

如何在MS Access中选择日期时间范围之上的数据

例如:选择* from logevents where logTime>='12/6/2012 3:54:15 PM'

其中logTime是DateTime类型字段。


1
你的查询有什么问题? - LittleBobbyTables - Au Revoir
请勿将其放在引号中,只需将日期保持原样或在其周围添加#符号即可正常运行,例如WHERE logTime >= 12/04/12。它甚至不会挑剔12/4/12与12/03/2012的区别。 - Scotch
2个回答

23

在日期的两端添加 # 符号可以让 Access 知道这是一个日期类型。

select * from logevents where logTime>=#12/6/2012 3:54:15 PM#

0
这取决于您的Access数据库是否在ANSI 92模式下创建/打开:
非ANSI 92: 当使用LIKE时,Access在日期周围使用# ... #,并使用*(多个字符)和?(一个字符)作为通配符。例如:

SELECT * FROM logevents WHERE logTime>=#12/6/2012# AND description like 'error'

ANSI 92: 当使用LIKE时,Access在日期周围使用' ... ',并使用%和?作为通配符。此模式看起来更像MySQL、Oracle和MSSQL处理日期和通配符的方式。例如:

SELECT * FROM logevents WHERE logTime>='12/6/2012' AND description like '%error%'

请务必检查日期格式设置。它可以是dd/mm/yyyy或dd-mm-yyyy或其他内容,这取决于您的区域设置。只需检查您的表格中是否有日期列以获取示例数据即可。

要在Access 2007中切换到ANSI-92,但这应该很容易应用于不同的版本: - 打开MS Access - 单击左上角的Office按钮 - 单击“Access选项”按钮 - 从左窗格中选择“对象设计器” - 查找“查询设计”部分,有一个选项“SQL Server兼容语法(ANSI 92)” - 如果您有一个打开的数据库,可以在“此数据库”上进行检查或检查“新数据库的默认设置”,以便在所有新数据库上进行默认设置。 - 单击“确定”按钮以接受更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接