나는 추가 쿼리를 원래의 가치 Manager_ID 분야 은 varchar(250)value=31.0. 나는 변환해야 또는 캐스팅 값을 표시만'월 31 일'제거 후 모든 것 구분해서 사용하는 경우가 있습니다 가 모두 변&던지기 모두에게 정수하거나 이며,다. 저는 점점 다음과 같은 오류가:
변환하지 못했습으로 변환할 때 varchar 값이'31.0'데이터의 유형 int.
저는 다른 분야식에서 모두 성공 삽입하는 테이블과 데이터이다.
나는 무엇이 없는가?
감사
오류에 대한 MSG 변환(int,변환(decimal(9,2),[Manager_ID]))
Varchar 오류 변환하는 데이터 형식하는 숫자입니다.
INSERT IGNORE INTO [dbo].[tblUsers]
( [User_ID]
,[FirstName]
,[LastName]
,[FullName]
,[EMail]
,[UserRoles]
,[PostionType]
,[ManagerID]
,[UUID]
,[External_UUID]
,[home_Location_id]
,[Home_Organization_ID]
,[Record_types]
,[Location_Ceiling_ID]
,[Organization_Ceiling_ID]
,[Payroll_Identifier]
,[Created_Date]
,[Created_Time]
,[Update_Date]
,[Update_Time])
Select id-- User_ID
,first_name
,last_name
,full_name
,email
,role_id --UserRoles
,position --PositionType
,**cast(Manager_id as nvarchar(10)) as ManagerID**
,uuid
,external_uuid
,home_location_id
,home_organization_id
,[type] --Record_Types
,location_ceiling_id
,organization_ceiling_id
,payroll_identifier
,Left(Convert(varchar(20), created_at, 120),10) as Create_Date
,Right(convert(varchar(16), created_at, 120),5) as Create_Time
,left(Convert(varchar(20), updated_at, 120),10) as Update_Date
,Right(convert(varchar(16), updated_at, 120),5) as Update_Time
from [stg].[Users]
최종 솔루션
,SUBSTRING(manager_id, 1,
CASE WHEN CHARINDEX('.',manager_id) - 1 < 0
THEN LEN(manager_id)
ELSE CHARINDEX('.',manager_id) - 1 END) as ManagerID