其中 '开始时间'是vachar,出现的错误是: 从字符串转换为 datetime 时发生语法错误。是说 DATENAME(MM,开始时间) 有问题,你不把你的 开始时间 里的数据贴出来,谁能帮你?
解决方案 »
- 请各位大侠帮我看看(sqlserver management studio)呀,实在是不解呀。
- 删除关联表问题
- 求SQL语名,省略一些重复项!
- 能不能用SQLSERVER2000来生成SQL查询语言?
- sqlserver2005中replace函数出错
- 多个存储过程如何共用一个事务?不然的话,只能采用嵌套事务了。
- 有谁知道最大连接数
- Ctrl+C怎么会出现“标记没有引用存储”
- 如何划分(小型、中型、大型)数据库
- 请问如何把Master库中的一个系统存储过程(位于Extended Stored Proc下)在别的数据库中也生成一份?
- 请给出一些有关数据库遭受破坏后恢复的材料或方案
- 死锁的问题,请大家看看(急)!!!
是’20000101000000‘
我想DATENAME用错了,我用SUBSTRING尝试一下
insert stat_info select 终端编号,业务编号,sum( case when 服务量>59 then ceiling(服务量/60.00) when 服务量 = 0 then 0 when 服务量<60 then 1 end),count(*),count(费用),substring(开始时间,1,4)+substring(开始时间,5,2)+substring(开始时间,7,2)+' 00:00:00' from UNICRETABLE where CONVERT(DATETIME,DATENAME(YY,开始时间)+'-'+DATENAME(MM,开始时间)+'-'+DATENAME(DD,开始时间)+' 00:00:00')>'1899-12-30 00:00:00' and 终端编号='0100000018' and 业务编号='00004' group by substring(开始时间,1,4)+substring(开始时间,5,2)+substring(开始时间,7,2)+' 00:00:00',终端编号,业务编号还是同样错误啊,55555555555555
sum( case when 服务量>59 then ceiling(服务量/60.00)
when 服务量 = 0 then 0 when 服务量<60 then 1 end),count(*),count(费用),
left(开始时间,8)
from UNICRETABLE where
终端编号='0100000018' and 业务编号='00004'
group by left(开始时间,8),终端编号,业务编号
修改过的代码是:
insert stat_info select 终端编号,业务编号,sum( case when 服务量>59 then ceiling(服务量/60.00) when 服务量 = 0 then 0 when 服务量<60 then 1 end),count(*),count(费用),substring(开始时间,1,4)+'-'+substring(开始时间,5,2)+'-'+substring(开始时间,7,2)+' 00:00:00' from UNICRETABLE where substring(开始时间,1,4)+'-'+substring(开始时间,5,2)+'-'+substring(开始时间,7,2)+' 00:00:00'>'1899-12-30 00:00:00' and 终端编号='0100000018' and 业务编号='00004' group by substring(开始时间,1,4)+'-'+substring(开始时间,5,2)+'-'+substring(开始时间,7,2)+' 00:00:00',终端编号,业务编号
谢谢哈,哥哥