数据库 为 SQL SERVER 2000
假设数据表 table1,有记录
编号 售币数 时间
1 1 2005-5-4 12:00:01
2 2 2005-5-4 12:00:04
3 2 2004-4-3 12:01:00
4 1 2004-3-5 12:01:00
5 1 2004-3-5 12:01:00
当我从外面传两个参数(一个参数为年份vx1,一个参数为月 vx2)
假设如:vx1=2005 vx2=5现在我要求出 2005 年 5 月份的 售币总数前台程序语言 为 DELPHI
各位大哥,我应该怎样设计这个程序啊?谢谢!
假设数据表 table1,有记录
编号 售币数 时间
1 1 2005-5-4 12:00:01
2 2 2005-5-4 12:00:04
3 2 2004-4-3 12:01:00
4 1 2004-3-5 12:01:00
5 1 2004-3-5 12:01:00
当我从外面传两个参数(一个参数为年份vx1,一个参数为月 vx2)
假设如:vx1=2005 vx2=5现在我要求出 2005 年 5 月份的 售币总数前台程序语言 为 DELPHI
各位大哥,我应该怎样设计这个程序啊?谢谢!
var
DT: string;
begin
DT := IntToStr(vx1)+'-'+InttoStr(vx2);
with AdoQuery1 do
begin
close;
sql.clear;
sql.text := 'select Sum(售币数) from Table1 where 时间 like '''+DT+'%'' ';
sql.open;
end;
end;
假设给两个输入框edit1,edit2分别输入年份和月份。程序就可以这样写adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select sum(售币数) as 售币数 where substring(Trim(时间),1,4)='''+Trim(edit1.text)+''' and substring(Trim(时间),6,2)='''+Trim(edit1.text)+''' ');
adoquery.open;但是,既然要用时间来查询,时间的格式就要规范,像以上代码,是间隔时必须满足10位
即,如果是2005-5-2 就必须规范为2005-05-02
Table1(编号,货币数,年,月,日,时分秒)这样就可以直接分组统计了Procedure DoSomething;
var
DT: string;
begin
DT := IntToStr(vx1)+'-'+InttoStr(vx2);
with AdoQuery1 do
begin
close;
sql.clear;
sql.text := 'select 年,月,Sum(售币数) from Table1 Group by 年,月';
sql.open;
end;
end;
谢谢 hatum 大哥和 lovend 大哥create procedure myproc3
@aa varchar(50),
@bb varchar(50)
as
declare @cc varchar (100)
set @cc=@aa+'-'+@bb select *
from table3
where timess=@cc+'%'
go然后我执行 exec myproc3 '2005','5'提示的错误是:
从字符串转换为 datetime 时发生语法错误
我应该怎样修呢?谢谢!
1), 拆分时间字段
2), 把你的时间字段改成字符串类型
您好!
在 SQL SERVER 2000 里 怎么坼分时间段 和 把时间字段改成字符串类型 啊谢谢!
您好!
假设
aa datetime '200-5-5 17:00:00'
怎么用 convert 和 cast 把 aa 变为字符串类型的 '2005-5-5'
或者字符串类型的 '200-5-5 17:00:00' 呢?(在 SQL SERVER 2000 里)谢谢!
可一这样写
select convert(char(10),时间,121) 时间,sum(售币数) 售币数 from table1 group by
convert(char(10),时间,121)