簡體   English   中英

SQL 2008-嘗試比較NVARCHAR(128)與日期時間

[英]SQL 2008 - Trying to compare NVARCHAR (128) to datetime

我必須比較兩個表,並且公共鏈接必須是日期字段。 我的問題是,一個日期是NVARCHAR(128)YYYYMMDDHHMM,另一個是日期時間YYYY-MM-DD HH:MM:SS.MMM。 我只需要YYYYMMDDHHMM即可匹配。

碼:

SELECT        ps_Patients.Identifier, ps_Patients.Source_Group, msg_ReportingEvent.EncounterDate, msg_ReportingEvent.EventDateTime
FROM            msg_ReportingEvent INNER JOIN
                         ps_Patients ON msg_ReportingEvent.PatientId = ps_Patients.PatientId AND msg_ReportingEvent.EncounterDate = ps_Patients.Created

假設您的ps_Patients.Created為Datetime數據類型,並且要將其轉換為YYYYMMDDHHMM格式以連接到其他表,您將執行以下操作……效率很低,但這似乎是唯一的方法。

SELECT  ps_Patients.Identifier
      , ps_Patients.Source_Group
      , msg_ReportingEvent.EncounterDate
      , msg_ReportingEvent.EventDateTime
FROM  msg_ReportingEvent INNER JOIN ps_Patients 
ON msg_ReportingEvent.PatientId = ps_Patients.PatientId 
AND msg_ReportingEvent.EncounterDate = CONVERT(VARCHAR(8), ps_Patients.Created, 112)
                                       + RIGHT('00' + CAST(DATEPART(HOUR,ps_Patients.Created) AS NVARCHAR(2)),2)
                                       +RIGHT('00' + CAST(DATEPART(MINUTE,ps_Patients.Created) AS NVARCHAR(2)),2)

您可以通過兩種不同的方式來做

CAST(nvarcharField AS DATETIME)

或另一種方式是

CONVERT(VARCHAR,nvarcharField,121)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM