最近在维护一个老的系统,用的是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函数。

更多推荐

access查找出生日期年份_access中时间日期查询的一些总结