SQL 将expression 转换为数据类型 datetime 时出现算术溢出错误
我的SQL代码如下:declare@s_datedatetime,@e_datedatetimeset@s_date='2014-08-01'set@e_date='20...
我的SQL代码如下:
declare
@s_date datetime
,@e_date datetime
set @s_date = '2014-08-01'
set @e_date = '2014-08-02'
SET @s_date = CONVERT(varchar(8),@s_date,112)
SET @e_date = CONVERT(varchar(8),@e_date,112)
select
@s_date s_date
,@e_date e_date
,a.doctor_code 工号
,d.employee_name 名字
,SUM(a.charge_amount*a.charge_price) 金额
,c.dept_name 科室
from dw_zy_costlist a(nolock)
left join dw_zy_opsapply b(nolock) on b.op_id=a.apply_no
left join dim_zy_ward c(nolock) on c.dept_id=a.dept_sn
left join dim_employee d(nolock) on d.employee_id=a.doctor_code
where
a.order_no=2
and a.datekey>@s_date
and a.datekey<@e_date
group by
a.doctor_code
,d.employee_name
,c.dept_name
在线等答案呀!!!
附:
1、CONVERT(varchar(8),@s_date,112)语句没错,可以成功将datetime型数据转换成类似 20140720 这样的字符串
2、如果我把where里面的@s_date和@e_date改为固定的值就不会出错
3、a.datekey为int型,值类似 20140720 这样(去掉横杠的日期) 展开
declare
@s_date datetime
,@e_date datetime
set @s_date = '2014-08-01'
set @e_date = '2014-08-02'
SET @s_date = CONVERT(varchar(8),@s_date,112)
SET @e_date = CONVERT(varchar(8),@e_date,112)
select
@s_date s_date
,@e_date e_date
,a.doctor_code 工号
,d.employee_name 名字
,SUM(a.charge_amount*a.charge_price) 金额
,c.dept_name 科室
from dw_zy_costlist a(nolock)
left join dw_zy_opsapply b(nolock) on b.op_id=a.apply_no
left join dim_zy_ward c(nolock) on c.dept_id=a.dept_sn
left join dim_employee d(nolock) on d.employee_id=a.doctor_code
where
a.order_no=2
and a.datekey>@s_date
and a.datekey<@e_date
group by
a.doctor_code
,d.employee_name
,c.dept_name
在线等答案呀!!!
附:
1、CONVERT(varchar(8),@s_date,112)语句没错,可以成功将datetime型数据转换成类似 20140720 这样的字符串
2、如果我把where里面的@s_date和@e_date改为固定的值就不会出错
3、a.datekey为int型,值类似 20140720 这样(去掉横杠的日期) 展开
1个回答
展开全部
int 类型怎么可以和Datetime类型比较呢?肯定不行啊
declare
@s_date datetime
,@e_date datetime
set @s_date = '2014-08-01'
set @e_date = '2014-08-02'
SET @s_date = CONVERT(varchar(8),@s_date,112)
SET @e_date = CONVERT(varchar(8),@e_date,112)
print @s_date
print @e_date---看看出来是什么东西????
条件那里应该这么写:
a.datekey>CONVERT(varchar(8),@s_date,112)
and a.datekey<CONVERT(varchar(8),@e_date,112)
declare
@s_date datetime
,@e_date datetime
set @s_date = '2014-08-01'
set @e_date = '2014-08-02'
SET @s_date = CONVERT(varchar(8),@s_date,112)
SET @e_date = CONVERT(varchar(8),@e_date,112)
print @s_date
print @e_date---看看出来是什么东西????
条件那里应该这么写:
a.datekey>CONVERT(varchar(8),@s_date,112)
and a.datekey<CONVERT(varchar(8),@e_date,112)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询