Мне нужно преобразовать один столбец столбца даты, в датах базы данных отключены ровно 5 часов. Время хранится как UTC, и когда они видят его приложение, он отображает часовой пояс EST. Приложение автоматически преобразует время. UTC опережает Восточное стандартное время на 5. Следующий код, похоже, фиксирует время и день для большинства временных меток, есть ли способ установить и смещать? Отчет выглядит один день назад и должен возвращать конвертированный UTC в EST раз.SQL Server 2008 UTC Преобразование в EST
SELECT DISTINCT
Encounters.EncounterNo, MedicalRecords.MedRecNo as MRN,
DATEADD(DAY, -1, DATEADD(hh, DATEDIFF(hh, GETDATE(), GETUTCDATE()), Documents.CreateDateTime)) AS [Create Date],
SUBSTRING(Enrollees.EnrolleeName, 1, CHARINDEX(',', Enrollees.EnrolleeName) - 1) as [Last Name],
SUBSTRING(Enrollees.EnrolleeName, CHARINDEX(',', Enrollees.EnrolleeName) + 1, len(Enrollees.EnrolleeName)) as [First Name],
DocTypes.DocTypeName,
CAST(Enrollees.BirthDate AS Date) AS [BIRTH DATE],
Enrollees.Gender, Enrollees.SocSecNo, Enrollees.Address,
CAST(Encounters.EncntrStartDate AS Date) AS [ADMIT DATE]
FROM
Enrollees
INNER JOIN
MedicalRecords ON Enrollees.EnrolleeOwnerId = MedicalRecords.EnrolleeOwnerId
INNER JOIN
Documents
INNER JOIN
DocTypes ON Documents.DocType = DocTypes.DocType
INNER JOIN
DocsOwners ON Documents.DocId = DocsOwners.DocId
INNER JOIN
Encounters ON DocsOwners.OwnerId = Encounters.EncntrOwnerId
ON MedicalRecords.MedRecOwnerId = Encounters.MedRecOwnerId
WHERE
Documents.DocType = '65'
AND (DATEDIFF(DD, GETUTCDATE(), Documents.CreateDateTime) = - 1)
ORDER BY
DocTypes.DocTypeName
http://www.sqlservercentral.com/Forums/Topic643108-8-1.aspx Вы, возможно, придется принимать во внимание день экономии света время тоже. https://social.msdn.microsoft.com/forums/sqlserver/en-US/5435096c-7b7a-4d8a-8933-ab3b987f2b21/date-conversion-utc-to-est-with-day-light-saving –
Какой отчет использует этот запрос? Может быть намного проще вернуть необработанные UTC (минус один день), а затем выполнить преобразование часового пояса в отчете, как это делается в вашем приложении. –
Hi Esoteric вы можете отправить образец строки кода, также если я хочу запустить отчет на основе дня назад этой отметки времени столбца, как я могу это написать? – Tony77