热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在将nvarchar值'合格'转换成数据类型int时失败。

setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERPROCEDURE[dbo].[TeacherSchedule]@Teache
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[TeacherSchedule] 
@TeacherId int,
@CourseType nvarchar(200),
@Begin datetime,
@End datetime

AS
declare @KpjsScheduleDateTime datetime,@KpjsTimeId int;
declare @datetime datetime, @week nvarchar(250), @classtime nvarchar(250), @Kpjs nvarchar(250), @KpjsAssistant int, @KpjsCourse nvarchar(250), @KpjsClass nvarchar(250), @SubjectNote nvarchar(250), @hours decimal(18,2),@TeacherHours decimal(18,2), @LessonPlanId int, @LessonPlanLength bigint, @TeachingLogLength bigint, @XiaoQu nvarchar(250);
declare @IsSuccess int ,@IsSuccessReason nvarchar(50);
declare @RestTime nvarchar(250);
declare @HeGeYesOrNo nvarchar(250),@HeGeUserName nvarchar(250);
declare @i int ; set @i = 0;
declare @KpjsLessonPlanLength_KpjsScheduleId bigint;


--tableSchedule
create table #ts (
[datetime] datetime null,
[week] nvarchar(250) null,
[time] nvarchar(250) null,
[TimeId] int null,
[CourseType] nvarchar(250) null,
[KpjsAssistant] int null,
[OneToOneStudentNo] int null,
[IsSuccess] int null,
[IsSuccessReason] nvarchar(250) null,
[course] nvarchar(250) null,
[class] nvarchar(250) null,
[XiaoQu] nvarchar(250) null,
[subjectnote] nvarchar(250) null,
[LessonPlanId] int null,--Kpjs , Nhw, Ielts, OneToOne
[LessonPlanLength] bigint null,
[TeachingLogLength] bigint null,
[CourseType2] nvarchar(250) null,
[course2] nvarchar(250) null,
[class2] nvarchar(250) null,
[subjectnote2] nvarchar(250) null,
[CourseType3] nvarchar(250) null,
[course3] nvarchar(250) null,
[class3] nvarchar(250) null,
[subjectnote3] nvarchar(250) null,
[CourseType4] nvarchar(250) null,
[course4] nvarchar(250) null,
[class4] nvarchar(250) null,
[subjectnote4] nvarchar(250) null,
[hours] decimal(18,2),
[TeacherHours] decimal(18,2),
[HeGeYesOrNo] nvarchar(250),
[HeGeUserName] nvarchar(250),
[RestTime] nvarchar(255)
)

if @CourseType = 'Kpjs' or @CourseType = 'All' 
BEGIN
--Kpjs
declare DistinctDateTime cursor for
 select distinct KpjsScheduleDateTime,KpjsTimeId from KpjsSchedule where  (TeacherId = @TeacherId or  AssistantId = @TeacherId ) and KpjsScheduleDateTime >= @Begin and KpjsScheduleDateTime <=@End

open DistinctDateTime
FETCH NEXT from DistinctDateTime into @KpjsScheduleDateTime,@KpjsTimeId
while @@FETCH_STATUS = 0
BEGIN 
--insert into #ts ([datetime],[time],[hours]) values (@KpjsScheduleDateTime,(select t.KpjsTimeBeginHour + ':' + t.KpjsTimeBeginMinute +'-'+t.KpjsTimeEndHour+':'+t.KpjsTimeEndMinute as classtime from KpjsTime t where KpjsTimeId = @KpjsTimeId), (select (CONVERT(decimal(18,2),t.KpjsTimeEndHour) - CONVERT(decimal(18,2),t.KpjsTimeBeginHour)) + convert(decimal(18,2), (convert(decimal(18,2),t.KpjsTimeEndMinute) - convert(decimal(18,2),t.KpjsTimeBeginMinute))/60 ) from KpjsTime t where KpjsTimeId = @KpjsTimeId));
declare kpjsSchedule cursor for
select convert(nvarchar(10),s.KpjsScheduleDateTime,20) as [datetime]
,s.KpjsScheduleWeek
,t.KpjsTimeBeginHour + ':' + t.KpjsTimeBeginMinute +'-'+t.KpjsTimeEndHour+':'+t.KpjsTimeEndMinute as classtime
,s.KPJS
,case s.AssistantId when @TeacherId then 1 else 0 end as KpjsAssistant
,course.KpjsCourse
,KpjsClass.KpjsClass + '('  +KpjsClass.KpjsClassStudyType + ')' as KpjsClass
,KpjsClass.XiaoQu 
,s.SubjectNote + CASE WHEN LEN(s.SpeakingTopic) > 0 THEN '-'+s.SpeakingTopic ELSE '' END 
, (CONVERT(decimal(18,2),t.KpjsTimeEndHour) - CONVERT(decimal(18,2),t.KpjsTimeBeginHour)) + convert(decimal(18,2), (convert(decimal(18,2),t.KpjsTimeEndMinute) - convert(decimal(18,2),t.KpjsTimeBeginMinute))/60 ) as hours
,s.TeacherHours
,s.IsSuccess
,s.IsSuccessReason
,KpjsLessonPlan.KpjsLessonPlanHeGeOrNoHeGe as HeGeYesOrNo
,KpjsLessonPlan.KpjsLessonPlanHegeUserName as HeGeUserName
,KpjsLessonPlan.KpjsLessonPlanId as LessonPlanId
,s.KpjsScheduleId as LessonPlanLength , ---用于到KpjsLessonPlanLength 再次查看lesson plan长度
DATALENGTH(KpjsLessonPlan.ClassRoom)+DATALENGTH(convert(nvarchar(100),KpjsLessonPlan.StudentNumber))+DATALENGTH(KpjsLessonPlan.SummaryAfterClass) as TeachingLogLength ,
CASE 
 WHEN RestTimeFrom != '' THEN RestTimeFrom + '-' + RestTimeTo + ''
 ELSE ' '
END
+
CASE 
 WHEN RestTimeFrom2 != '' THEN RestTimeFrom2 + '-' + RestTimeTo2 + ''     
 ELSE ' '
END
+
CASE 
 WHEN RestTimeFrom3 != '' THEN RestTimeFrom3 + '-' + RestTimeTo3        
 ELSE ' '
END
AS RestTime
from KpjsSchedule  s inner join KpjsTime t on s.KpjsTimeId = t.KpjsTimeId 
inner join KpjsCourse course on s.KpjsCourseId = course.KpjsCourseId 
inner join KpjsClass on KpjsClass.KpjsClassId = s.KpjsClassId
left join KpjsLessonPlan on KpjsLessonPlan.KpjsScheduleId = s.KpjsScheduleId
where (s.TeacherId = @TeacherId or  s.AssistantId = @TeacherId ) and s.KpjsScheduleDateTime = @KpjsScheduleDateTime and s.KpjsTimeId = @KpjsTimeId;


open kpjsSchedule
set @i =0;
fetch next from kpjsSchedule into @datetime,@week,@classtime,@Kpjs,@KpjsAssistant,@KpjsCourse,@KpjsClass,@XiaoQu,@SubjectNote,@hours,@TeacherHours,@IsSuccess,@IsSuccessReason,@LessonPlanId,@KpjsLessonPlanLength_KpjsScheduleId, @TeachingLogLength, @RestTime,@HeGeYesOrNo,@HeGeUserName;
while @@FETCH_STATUS = 0
BEGIN 
set @i = @i+1;
if @i = 1
begin
EXEC  [KpjsLessonPlanLength] @KpjsLessonPlanLength_KpjsScheduleId, @LessonPlanId OUTPUT , @LessonPlanLength OUTPUT , @TeachingLogLength OUTPUT ;
insert into #ts([datetime],[week],[time],[TimeId],[CourseType],[KpjsAssistant],[course],[class],[XiaoQu],[subjectnote],[LessonPlanId],[LessonPlanLength],[TeachingLogLength],[hours],[TeacherHours],[IsSuccess],[IsSuccessReason],[RestTime],[HeGeYesOrNo],[HeGeUserName]) 
values(@datetime,@week,@classtime,@KpjsTimeId,@Kpjs,@KpjsAssistant,@KpjsCourse,@KpjsClass,@XiaoQu,@SubjectNote,@LessonPlanId,@LessonPlanLength,@TeachingLogLength,@hours,@TeacherHours,@IsSuccess,@IsSuccessReason,@RestTime,Cast(@HeGeYesOrNo as nvarchar(250)),@HeGeUserName);
end
else
begin
if @i = 2
update #ts set [CourseType2]=@Kpjs,[course2]=@KpjsCourse,[class2]=@KpjsClass,[subjectnote2]=@SubjectNote where [datetime]=@datetime and [week] = @week and [time] = @classtime;
if @i = 3
update #ts set [CourseType3]=@Kpjs,[course3]=@KpjsCourse,[class3]=@KpjsClass,[subjectnote3]=@SubjectNote where [datetime]=@datetime and [week] = @week and [time] = @classtime;
if @i = 4
update #ts set [CourseType4]=@Kpjs,[course4]=@KpjsCourse,[class4]=@KpjsClass,[subjectnote4]=@SubjectNote where [datetime]=@datetime and [week] = @week and [time] = @classtime;
 
end
fetch next from kpjsSchedule into @datetime,@week,@classtime,@Kpjs,@KpjsAssistant,@KpjsCourse,@KpjsClass,@XiaoQu,@SubjectNote,@hours,@TeacherHours,@IsSuccess,@IsSuccessReason,@LessonPlanId,@KpjsLessonPlanLength_KpjsScheduleId, @TeachingLogLength,@RestTime;
end;
close kpjsSchedule;
deallocate kpjsSchedule;
FETCH NEXT from DistinctDateTime into @KpjsScheduleDateTime,@KpjsTimeId
End
CLOSE DistinctDateTime               
DEALLOCATE DistinctDateTime 
END
select convert(nvarchar(10),[datetime],20) as [datetime],
[week],
[time],
[TimeId],
[CourseType],
[KpjsAssistant],
[OneToOneStudentNo],
[IsSuccess],
[IsSuccessReason],
[course],
[class],
[XiaoQu],
[subjectnote],
[LessonPlanId],
[LessonPlanLength],
[TeachingLogLength],
[CourseType2],
[course2],
[class2],
[subjectnote2],
[CourseType3],
[course3],
[class3],
[subjectnote3],
[CourseType4],
[course4],
[class4],
[subjectnote4] ,
[hours],
[TeacherHours],
    [RestTime] ,
    [HeGeYesOrNo],
    [HeGeUserName],
@TeacherId as TeacherId
 from #ts order by  [datetime], [time];
drop table #ts;

4 个解决方案

#1


提示你的还不够啊,你把中文转成int,能行吗,哪个变量传递的是中文,搜一下,看看哪里对它进行转换了

#2


可好看了就会立刻就会

#3


··中文怎么转换成int 你想干嘛呀·

#4


将你原先保存了合格的int类型的列修改成varchar类型

推荐阅读
  • 在Unity3D的第13天学习中,我们深入探讨了关节系统和布料模拟技术。关节系统作为Unity中的关键物理组件,能够实现游戏对象间的动态连接,如刚体间的关系、门的开合动作以及角色的布娃娃效果。铰链关节涉及两个刚体的交互,能够精确模拟复杂的机械运动,为游戏增添了真实感。此外,布料模拟技术则进一步提升了角色衣物和环境装饰物的自然表现,增强了视觉效果的真实性和沉浸感。 ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
  • 深入解析MyBatis的高级映射技术
    在前一章节中,我们探讨了MyBatis的基本对象映射方法,其中对象属性与数据库表字段之间实现了直接的一对一映射。然而,在实际开发中,这种简单的映射方式往往难以满足复杂业务需求。本文将深入分析MyBatis的高级映射技术,介绍如何通过配置和注解实现更为灵活的对象与数据库表之间的映射关系,包括嵌套结果、联合查询和动态SQL等高级功能,以提高开发效率和代码可维护性。 ... [详细]
  • 本文深入探讨了SQL Server中三种高效的分页查询方法。首先,介绍了利用 `NOT IN` 和 `SELECT TOP` 结合的分页方案,该方法通过排除已获取的记录来实现分页。其次,详细分析了使用 `ROW_NUMBER()` 函数的分页技术,这种方法在处理大量数据时表现出色。最后,讨论了基于索引的分页策略,通过优化索引结构来提高查询性能。每种方法都附有具体的示例和性能对比,帮助读者选择最适合其应用场景的分页方案。 ... [详细]
  • 本文深入分析了Django框架中模型应用与非模型应用的区别与应用场景,详细对比了两者在数据处理、性能表现及开发灵活性等方面的特点。同时,文章还介绍了如何在视图函数中有效利用这些特性,结合PostgreSQL、MySQL、SQLite3和Oracle等不同数据库的配置与使用方法,为开发者提供了全面的参考指南。 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • 深入解析 Django 中用户模型的自定义方法与技巧 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • 全面解析Java虚拟机:内存模型深度剖析 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 尽管存在唯一列,仍显示“当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用”的消息。 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • 深入解析 org.hibernate.event.spi.EventSource.getFactory() 方法及其应用实例 ... [详细]
author-avatar
太姥茶叶论坛_730
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有