0

次のコードに問題があります。

USE [PCIPNY];

insert into [dbo].[test_Drug_Medication_1]
(
       [MedicationID] ,[ClinicID] ,[PatientID] ,[MyDrugID] ,[NDC] ,[DoctorID] ,[DrugID] ,[DrugFullDesc] ,[Generic_Name]
      ,[Print_Name] ,[Manufacture] ,[Inactive_Date] ,[Strength] ,[Units] ,[Pkg_Size] ,[Pkg_Type] ,[Route] ,[Take]
      ,[Frequency] ,[Duration] ,[Qualifier] ,[Quantity] ,[Refill] ,[Note] ,[DAW] ,[CreateDate] ,[CreateBy]
      ,[ModifyBy],[IsControl] ,[UserDefine] ,[scheduleLevel] ,[BeginDate] ,[EndDate] ,[Active] ,[sente]
      ,[OnCologyCheckStatus] ,[OnCologyCheckStatus1] ,[OnCologyCheckStatus2] ,[SIG] ,[Printed] ,[ICDCode] ,[SendeFaxed] ,[DosageForm] ,[GPI]
      ,[IsBrand] ,[IsGeneric] ,[GenericAndBrand] ,[SigUnit] ,[IsDrug] ,[Status]
)

SELECT
      [MedicationID] ,[ClinicID] ,[PatientID] ,[MyDrugID] ,[NDC] ,[DoctorID] ,[DrugID] ,[DrugFullDesc] ,[Generic_Name]
      ,[Print_Name] ,[Manufacture] ,[Inactive_Date] ,[Strength] ,[Units] ,[Pkg_Size] ,[Pkg_Type] ,[Route] ,[Take]
      ,[Frequency] ,[Duration] ,[Qualifier] ,[Quantity] ,[Refill] ,[Note] ,[DAW] ,[CreateDate] ,[CreateBy]
      ,[ModifyBy] ,[IsControl] ,[UserDefine] ,[scheduleLevel] ,[BeginDate] ,[EndDate] ,[Active] ,[sente]
      ,[OnCologyCheckStatus] ,[OnCologyCheckStatus1] ,[OnCologyCheckStatus2] ,[SIG] ,[Printed] ,[ICDCode] ,[SendeFaxed] ,[DosageForm] ,[GPI]
      ,[IsBrand] ,[IsGeneric] ,[GenericAndBrand] ,[SigUnit] ,[IsDrug] ,[Status]

  FROM [ec14].[dbo].[Drug_Medication]
    where 1=1
      and clinicid in (select clinicid from [dbo].[clinic] where org_db = 'ec14' and ClinicID=1234);

このエラーが発生しました:

メッセージ 241、レベル 16、状態 1、行 3
文字列から日付や時刻を変換するときに、変換に失敗しました。

エラーが列にあることがわかりましたbegindate

ec04(origin location)の列begindatecharvar(16)データ型です。
PCIPNY(送信先の場所)の列begindatedatetimeデータ型です。

これを機能させるための解決策はありますか?

4

3 に答える 3

1

ソースからの SELECT 句で、変更

BeginDate

CASE WHEN ISDATE(BeginDate) = 1 then CAST(BeginDate AS DATETIME) END

DMY/MDYフォーマットを正しく設定していない場合でしょうか?SET DATEFORMATを変更してみてください。または、実際に変換できる特定の形式のすべての日付 (varchar) はありますか? その場合は、フォーマット指定子でCONVERTを使用できます。

CONVERT(datetime, BeginDate, 103)
于 2012-10-12T17:14:22.933 に答える
0

ec14 から選択したフィールドをキャストしてみてください。

, cast(begindate as datetime) ,

于 2012-10-12T17:13:45.400 に答える
0

日付が正しい形式であること、または列がずれていないことを確認してください。挿入される列の順序が間違っている場合、以前にこのエラーが発生しました。日付フィールドに入力しようとしているデータが、日付ではなく別のフィールドである可能性があります。

于 2012-10-12T17:13:49.330 に答える