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 这样(去掉横杠的日期)
展开
 我来答
玩转数据处理
推荐于2017-12-16 · 数据处理,Python,dotnet
玩转数据处理
采纳数:1613 获赞数:3794

向TA提问 私信TA
展开全部
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)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式