1

値を変換したい

2to5experience

3to7experience

Minexperience へ:

2
3

マックスエクスペリエンス

5
7

だから私は次のクエリを作成し、

select cast(substring(Cast(Experience AS VARCHAR(50)),1,1)*365*24*60*60 as int) as Experience 
      from requirementsdetailsfororganization

上記のものは機能しています。次のようにクエリを更新すると、エラーが発生します。

select 'Insert into Jobs(requirementId,organizationId,Minexperience)values(' + 
   Cast(o.RequirementID as varchar(50))+',' +
   Cast(o.OrganizationID as varchar(50))+',' +
   cast(substring(CAST(Experience AS VARCHAR(50)),1,1)*365*24*60*60 as int)+')'
   FROM RequirementsDetailsforOrganization AS o

エラー表示です

「 varchar 値')' をデータ型 intに変換するときに変換に失敗しました」

何か案が?

4

2 に答える 2

2

select の最後から 2 番目の行で、式をキャストしてから(を使用して) aintを追加します。の左側の値は整数であるため、SQL Server は の右側のオペランドも整数に変換しようとします。+)++

キャストを次のように変更してみてくださいint。代わりに次のようにキャストしますvarchar

select 'Insert into Jobs(requirementId,organizationId,Minexperience)values(' + 
   Cast(o.RequirementID as varchar(50))+',' +
   Cast(o.OrganizationID as varchar(50))+',' +
   cast(substring(CAST(Experience AS VARCHAR(50)),1,1)*365*24*60*60 as varchar(50))+')'
   FROM RequirementsDetailsforOrganization AS o

ノート:

Experiencetoのキャストvarcharはおそらく不要です。

于 2013-04-16T08:27:36.007 に答える