Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29419837
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2009-12-02 08:20:10

今天程序中要实现时间作为查询条件的功能!使用的是ASP+ACCESS。 

    在ACCESS数据库中,日期时间的比较操作符主要有>= <==三个!但不能直接把比较时间用这些操作符相连!为了区分时间类型和其它类型,ACCESS中在时间比较时在时间两端要加上#!例如,要查询2007-1-1日到2007-7-2日之间的信息,SQL语句可以写成:

Select * form table where datefield >=#2007-1-1# and datefield <=#2007-7-2#

asp程序中对应得SQL串为:

exsql="select * form table where datefield >= # 2007-1-1 # and datefield<=# 2007-7-2 # "

如果把查询的时间换成一个其他页面传来的变量的话,SQL串对应修改为:

exsql="select * from table where datefield>=#" &Begindate& "# and datefield<= #" &Enddate& "#" ,其中变量BegindateEnddate分别是查询的起始时间和结束时间。

在网上还找到了一些相关的文章,我也一并附在后面,希望能给需要的朋友有些启示和帮助:

列出某一天, 上一星期的数据:

 SELECT distinct dateandtime FROM ctdate_by_query_date WHERE dateandtime between ((#2006-5-15#+(Weekday(2006-5-15)-7))-6) and (#2006-5-15#-7)+Weekday(2006-5-15)

sql="SELECT distinct dateandtime FROM ctarticle WHERE dateandtime between ((#"&date&"#+(Weekday("&date&")"&norp&"7))-6) and (#"&date&"#"&norp&"7)+Weekday("&date&")"

   查询一天, 所隶属星期所有天数的数据:

 SELECT * FROM ctdate_by_query_date WHERE dateandtime between ((#2006-5-15#+Weekday(2006-5-15))-6) and #2006-5-15#+Weekday(2006-5-15)

查询一个时间段 SELECT * FROM ctdate_by_query_date WHERE dateandtime between #2006-5-1# and #2006-5-30#

列出不同年份的年份, 并且不要相同:

select distinct year(dateandtime) from ctarticle

 结果如:  Expr1000 2000 2003 2004 2005 2006

列出某一天, 上一年的第一条记录:

 SELECT top 1 dateandtime FROM ctarticle where year(dateandtime)=(2006)-1

sql="SELECT top 1 dateandtime FROM ctarticle where year(dateandtime)=(year(#"&date&"#))"&norp  

列出某一年的数据:

 sql="select * from ctdate_by_query_date where year(dateandtime)="&year(rqqdt_)&" order by dateandtime desc" 查找上一月中的第一条记录:

 SELECT top 1 dateandtime FROM ctarticle where year(dateandtime)=year(#2006-5-28#) and  month(dateandtime)=month(#2006-5-28#)-1

列出某一月的数据:

 sql="select * from ctdate_by_query_date where year(dateandtime)="&year(rqqdt_)&" and month(dateandtime)="&month(rqqdt_)&" order by dateandtime desc"

列出某一日的数据:

 sql="select * from ctdate_by_query_date where dateandtime=#"&rqqdt_&"# order by a.articleid desc"

 列出当天的数据:

ql="select * from ctdate_by_query_date where dateandtime=date() order by a.articleid desc"

阅读(1645) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~