| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1874 人关注过本帖
标题:大家好,我想请问一个关于SQL时间比较的问题.
只看楼主 加入收藏
airfei
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-4-12
收藏
 问题点数:0 回复次数:4 
大家好,我想请问一个关于SQL时间比较的问题.

我想用一个表中的时间和另一个表中的时间比较

Dim date_time
date_time=rs("news_date") ----第一个表时间
Response.Write "<table width=""758"" border=""0"" align=""center"" cellspacing=""0"" cellpadding=""0"" class=""table-shangxia""><tr><td height=""23"" class=""a1""> 相关考勤</td></tr></table>" & vbCrLf
Response.Write "<table width=""97%"" align=""center"" bgcolor=""#FCFCFC"">" & vbCrLf
Response.Write "<tr><td background=""img/bg.gif"" style=""LINE-HEIGHT: 210%"">"
sql="select top 1 * from art where art_date > date_time and art_title like '%人数汇总%' order by art_date DESC"

看看我的有什么错误,谢谢了

搜索更多相关主题的帖子: SQL 时间 
2007-08-28 17:03
jamesxiaoyao
Rank: 1
等 级:新手上路
威 望:2
帖 子:173
专家分:0
注 册:2007-5-21
收藏
得分:0 
有两个日期和时间函数对根据日期和时间取出记录是有用的。使用函数DATEADD()和DATEDIFF(),你可以比较日期的早晚。例如,下面的SELECT语句将显示表中的每一条记录已经输入了多少个小时:
SELECT entrydate ‘Time Entered’

DATEDIFF(hh,entrydate,GETDATE()) ‘Hours Ago’ FROM weblog
如果当前时间是2000年11月30号下午6点15分,则会返回如下的结果:
Time Entered Hours Ago

…………………………………………………..
Dec 30 2000 4:09PM 2
Dec 30 2000 4:13PM 2
Dec 1 2000 4:09PM 698
(3 row(s) affected)
函数DADEDIFF()的参数是三个变量。第个变量指定日期的某一部分。在这个例子中,是按小时对日期进行比较,(要了解日期各部分的详细内容,请参考表11.2)在日期2000年11月1日和2000年11月30日的指定时间之间有689个小时。另外两个参数是要进行比较的时间。为了返回一个正数,较早的时间应该先给。
函数DATEADD()把两个日期相加。当你需要计算截止日期这一类的数据时,这个函数是有用处的。例如,假设访问者必须先注册才能使用你的站点。注册以后,他们可以免费使用你的站点一个月。要确定什么时候他们的免费时间会用完,你可以使用如下的SELECT语句:
SELECT username ‘User Name’,
DATEADD(mm,1,firstvisit_date) ‘Registration Expires’

FROM registration_table
函数DATEADD()的参数有三个变量。第一个变量代表日期的某一部分(参见表11.2),这个例子用到了代表月份的mm。第二个变量指定了时间的间隔――在本例中是一个月。最后一个变量是一个日期,在这个例子中,日期是取自DATETIME型字段firstvisit_date.假设当前日期是June 30,2000,这个语句将返回如下的内容:
User Name Registration Expires

……………………………………………………………………………

Bill Gates Jul 30 2000 4:09PM
President Clinton Jul 30 2000 4:13PM
William Shakespeare Jul 1 2000 4:09PM
(3 row(s) affected)
注意
与你预料的相反,使用函数DATEADD()把一个日期加上一个月,它并不加上30天。这个函数只简单地把月份值加1。这意味着在11月注册的人将比在2月注册的人多得到2天或3天的时间。要避免这个问题,你可以用函数DATEADD()直接增加天数,而不是月份。
2007-08-28 17:16
天涯听雨
Rank: 2
来 自:东莞
等 级:论坛游民
威 望:4
帖 子:497
专家分:64
注 册:2007-8-25
收藏
得分:0 

sql="select top 1 * from art where art_date > date_time and art_title like '%人数汇总%' order by art_date DESC"

sql="select top 1 * from art where art_date >'"&date_time&"' and art_title like '%人数汇总%' order by art_date DESC"


从明天起做幸福的人,喂马劈柴周游世界!
2007-08-28 17:51
airfei
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-4-12
收藏
得分:0 
art_date > date_time
art_date中的值比如说是2007-7-12 11:57:55这样的类型,不一定是这个值,因为是从数据库中找.
data_time中的值是2007-7-10 10:42:55
现在我想data_time中的值是2007-7然后和art_date中值比较.
这两个变量的值都是动态获得的.
该如何实现?
date_time= year(rs("news_date"))&"-"&month(rs("news_date"))
这句错在那里?
2007-08-28 18:12
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 

改成
art_date > left(date_time,10)
试试这样行不行

2007-08-28 21:55
快速回复:大家好,我想请问一个关于SQL时间比较的问题.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027141 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved