【问题标题】:Varchar to Datetime formatVarchar 到日期时间格式
【发布时间】:2020-06-26 05:16:49
【问题描述】:

我需要将 Table1 中的 Registrationdate(varchar) 列转换为 Table2 中的 Registrationdate(datetime) 格式。我需要在插入代码中使用它。

Insert Full_patient_reg (Patient_id,RegistrationDate,PatientName)
    select a.PATIENT_ID,a.REGISTRATIONDATE,a.PATIENTNAME from hinai_patient a
    where a.PATIENT_ID not in
    (select Patient_id from Full_patient_reg where a.PATIENT_ID=Patient_id)

它会导致类似“将 varchar 数据类型转换为 datetime 数据类型导致值超出范围”之类的错误。

请建议一个在插入代码中起作用的代码。

Dateformats (varchar)
2011-08-01 00:00:00
2000-11-16 07:39:44
2020-06-06 07:51:42.644
2020-05-26 06:55:38.08

【问题讨论】:

  • hinai_patient中的日期是什么格式?
  • 请提供样本数据
  • 日期格式是一个很重要的问题。根据您所在的位置,您可能还需要set dateformat dmy。 Sql server 不是很宽容——有时你需要先重新格式化它。
  • 该列中的格式类型 '2011-08-01 00:00:00','2000-11-16 07:39:44','2020-06-06 07:51:42.644 ','2020-05-26 06:55:38.08'

标签: sql sql-server


【解决方案1】:

简单的转换似乎工作正常:

select convert(datetime, RegistrationDate)

请找到 dbfiddle here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2017-07-01
    • 1970-01-01
    • 2017-12-02
    相关资源
    最近更新 更多