导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

急。。。如何统计某天前所有记录。。。。

heyun139___ 2007-12-07 09:36:49
eg:

每当传递参数,YEAR,MONTH,

表table : ID,Name,code ,Datetime.

如何统计Datetime 当前日期前所有的记录呀。
...全文
35 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxuelid 2007-12-07

select logouttime_ from Currentuser where Convert(varchar(10),logouttime_)=Convert(varchar(10),getdate())
回复
heyun139___ 2007-12-07
非常感谢大家帮忙。。。。。

要统计’200712‘之前的记录就如下了:

declare @year varchar(4) , @month varchar(4)
select @year='2007',@month='12'
select count(1) as total from tab where DATEDIFF(month,[Datetime] ,cast(@year+'-'+@month+'-'+'01' as datetime)) >=0


回复
leo_lesley 2007-12-07
如果比较到具体的天,就用第一种,如果只比较到月份,就用第二种
回复
leo_lesley 2007-12-07
----example

create table tab(ID int,Name varchar(10),code varchar(10),[Datetime] datetime)
insert tab

select 1,'aa','aaa','2006-01-05'
union select 2,'bb','bbb','2007-10-12'
union select 2,'bb','bbb','2007-11-12'
union select 2,'bb','bbb','2007-12-12'
union select 2,'bb','bbb','2008-12-12'

declare @year varchar(4) , @month varchar(4)

select @year='2007',@month='12'

select * from tab where DATEDIFF(month,[Datetime] ,cast(@year+'-'+@month+'-'+'01' as datetime)) >=0

drop table tab

/* 结果
ID Name code Datetime
----------- ---------- ---------- ------------------------------------------------------
1 aa aaa 2006-01-05 00:00:00.000
2 bb bbb 2007-10-12 00:00:00.000
2 bb bbb 2007-11-12 00:00:00.000
2 bb bbb 2007-12-12 00:00:00.000

(所影响的行数为 4 行)
*/
回复
leo_lesley 2007-12-07
declare @year varchar(4) , @month varchar(4)

select @year='2007',@month='12'

select * from 表table where DATEDIFF(day,[Datetime] ,cast(@year+'-'+@month+'-'+'01' as datetime)) >=0
回复
dawugui 2007-12-07
每当传递参数,YEAR,MONTH??
是按这两参数还是当前日期?
回复
dawugui 2007-12-07
select * from tb where convert(varchar(10),日期,120) < convert(varchar(10),getdate(),120)
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告