access中时间日期查询的一些总结

最近在维护一个老的系统,用的是access数据库,但是客户需要一个比较负责的查询功能,涉及了去除周末,节假日设置,还有很多额为的特殊条件。

由于access数据库不支持存储过程,伪存储过程又很不方便,所以最初打算用临时表用后删除的策略,后来抛弃了。不过还是先把相应的实现总结一下。

一、access中表的操作

1、创建表

[sql] create table new_table_name (名称 类型,名称 类型) [/sql]

常见的类型包括: int 整形 text 文本 DateTime 日期 money 货币

设置主键和自增: autoincrement(1,1)

2、删除表

[sql] Drop table new_table_name [/sql]

3、插入记录

[sql] INSERT INTO new_table_name (id,name) select orthertable.id,orthertable.name from orthertable [/sql]

二、日期查询

[sql] DateValue(日期列) between #2013-2-1# and #2013-2-21# [/sql]

这里使用了DateValue这个函数,如果不用这个函数的话,这个语句就要变成: [sql] 日期列 between #2013-2-1# and #2013-2-21 23:59:59# [/sql]

很容易犯的一个错误就是日期区间的后一个日期没有加“23:59:59”,这样最后一天的数据无法查询。


[sql]select * from tablename where weekday(startm) <> 1 and weekday(startm) <> 7[/sql]


weekday()函数可以获取日期是星期几,结果为1到7的数字,1和7代表周日和周六。

三、时间查询

[sql] TimeValue(startm) between #09:00# AND #12:00# [/sql]

这里使用的是TimeValue函数。

原文地址:https://www.cnblogs.com/mnight/p/3677635.html