[英]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.