请教高手,将两个时间字段的差乘以数字记到第三个字段“计费”中,如何写SQL?
下面的SQL语句在ACCESS中对,在MSSQL中显示错误:
update 终端日志 set 计费=用时*1*24 where (计费 is null)
错误信息是:
对数据类型而言运算符无效。运算符为 multiply,类型为 smalldatetime。
我该怎么办?
问题点数:20、回复次数:3Top
1 楼zarge(鲨去来兮)回复于 2003-09-03 23:07:53 得分 20
计费单位是什么?
秒:
update 终端日志 set 计费 = datediff(second, '0:0:0', 用时) * 1 * 24
where (计费 is null)
分:
update 终端日志 set 计费 = datediff(minute, '0:0:0', 用时) * 1 * 24
where (计费 is null)
小时:
秒:
update 终端日志 set 计费 = datediff(hour, '0:0:0', 用时) * 1 * 24
where (计费 is null)
Top
2 楼net1999(好人)回复于 2003-09-04 00:59:38 得分 0
谢谢,您真好,我也这样做对了。不过下面这个代码中的SQL语句可以从ACCESSS改为MSSQLSERVER可以认的语句吗?谢谢!(是从已经有的数据中统计学生的欠费情况。
if not dbisaccess then
begin
application.MessageBox('当前的数据库系统不是ACCESS的MDB数据库文件,暂不支持本查询功能。','查询',64);
exit;
end;
s:='SELECT stuno AS 学生学号, first(Cname) AS 姓名, first(zy) as 学生专业, first(bj) as 所在班级,First(应交费) AS 已经消费, sum(交费金额) AS 交费总额, 交费总额-已经消费 AS 当前余额'+
' FROM [SELECT b.stuno,cname,zy,bj, c.交费金额, b.应交费 FROM '+
' (select stuno,first(中文姓名) as Cname , first(专业) as zy,first(班级) as bj, sum(计费) as 应交费 from '+
' (select 学生档案.学号 as stuno,中文姓名,专业,班级,计费 from 学生档案 left join 终端日志 on 学生档案.学号=终端日志.学号) group by stuno) AS b'+
' LEFT JOIN (select 学号,交费金额 from 交费记录) AS c ON c.学号=b.stuno]. AS d'+
' GROUP BY stuno';
ADOQueryanaly.Close;
ADOQueryanaly.SQL.Text:=s;
ADOQueryanaly.Open;
Top
3 楼zarge(鲨去来兮)回复于 2003-09-04 15:47:39 得分 0
把first换成min或者max试试Top
相关问题
- 超难度:---这样的SQL操作怎么实现??(三个字段)
- 请问在SQL SERVER 中如何用查询语言删除PPPP字段中的后三个字符‘123’
- 如何将表单字段转化为 sql的numeric类型?如何将年月日三个字段转化为sql的日期类型?
- 如何将第三个字段和第四个字段对掉?
- 表test中有三个字段:编号 种类 日期, 用SQL语句怎样查找出重复的记录(三者都相同的记录)?
- 请教:、在SQL Server 数据库中,有一个表StudentAchievement(学生成绩),它有三个字段:StudentID(varchar(8),学生编号),CourseID(var
- 在SQL Server 数据库中,有一个表StudentAchievement(学生成绩),它有三个字段:StudentID(varchar(8),学生编号),CourseID(varchar(10)
- 请问:一张表有三个字段,每个字段的行都可能有重复的值,但三个字段的行不会复重。
- 我的表里有三个字段,我想让头二个字段为主键怎么作,谢谢
- SQL SERVER 的字段



