注册 登录
编程论坛 SQL Server论坛

弱问一下~T-SQL问题

honkerman 发布于 2006-10-28 10:05, 1398 次点击

有一个叫BBS的数据库,record表结构为
列名 数据类型 长度 允许空
3 ID numeric 9 0 --primary key
0 CardID varchar 10 0 --foreign key
0 ComputerID varchar 10 1 --foreign key
0 BeginTime datetime 8 1
0 EndTime datetime 8 1
0 Fee numeric 9 1

编写一个T-SQL,查询一下本月上机最长的三个用户的卡号

13 回复
#2
小水滴2006-10-28 10:41
select top 3 cardID
from record
where datediff(mm,begintime,getdate())=0
order by datediff(ms,begintime,endtime) desc

[此贴子已经被作者于2006-10-28 10:48:33编辑过]

#3
honkerman2006-10-28 10:54
以下是引用honkerman在2006-10-28 10:05:26的发言:

有一个叫BBS的数据库,record表结构为
列名 数据类型 长度 允许空
3 ID numeric 9 0 --primary key
0 CardID varchar 10 0 --foreign key
0 ComputerID varchar 10 1 --foreign key
0 BeginTime datetime 8 1 --这个是当天的上机时间
0 EndTime datetime 8 1 --这个是当天的下机时间
0 Fee numeric 9 1

编写一个T-SQL,查询一下本月上机最长的三个用户的卡号

#4
honkerman2006-10-28 10:55
水滴MM,我运行不出来啊~~
#5
honkerman2006-10-28 10:57
要把从今天止前一个月内的用户上机时间都算上~~然后排出前3个~~
#6
小水滴2006-10-28 11:36

我测试过的,可以的,是本月的,不包括上月的.

#7
honkerman2006-10-28 11:44

谢谢了,偶再看看

#8
honkerman2006-10-28 11:51
你是对的,呵呵,不好意思,我查询的数据不对,所以查不到~~
#9
小水滴2006-10-28 12:18
相互学习
#10
wohemachen2006-10-30 11:06
以下是引用小水滴在2006-10-28 10:41:48的发言:
select top 3 cardID
from record
where datediff(mm,begintime,getdate())=0
order by datediff(ms,begintime,endtime) desc

正解~

#11
luoshun2006-10-30 11:28
MM和MS代表什么哦是秒数和月份吗
#12
小水滴2006-10-30 19:21
MM是月份

MS是毫秒数
#13
亦亦2006-11-05 23:16
datediff()是什么函数?
#14
李彬2006-11-06 10:31
以下是引用亦亦在2006-11-5 23:16:33的发言:
datediff()是什么函数?

用于计算日期与日期之间的函数!

1