Конвертировать SQL Server DATETIMEOFFSET в mySQL DateTime - PullRequest
2 голосов
/ 11 апреля 2019

Мне было поручено написать пакет служб SSIS для преобразования нескольких баз данных SQL Server в mySQL, и моя текущая проблема связана с типом данных DATETIMEOFFSET из SQL Server.Я попытался преобразовать поле, я попытался преобразовать его, и я попытался преобразовать его , затем , преобразовав его в тип данных DATETIME, но не повезло.Но все, что я пробовал, привело к этой ошибке:

[ADO NET Destination [2]] Ошибка: во время вставки данных возникла исключительная ситуация, сообщение от провайдера вернулось: ОШИБКА [07006] [MySQL] [ODBC 5.3 (a) Драйвер] [mysqld-5.6.10] Преобразование не поддерживается

Есть идеи, как получить этот тип данных сервера sql в mySql?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Преобразование с использованием практически любого стиля приведет к преобразованию значения datetime2 в УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ. Кроме того, преобразование из datetime2 в datetimeoffset просто устанавливает смещение в +00: 00, В соответствии с нижеприведенным, это быстрый способ преобразования Datetimeoffset (offset! = 0) в DateTimeOffset (+00: 00)

declare @createdon datetimeoffset
set @createdon = '2008-12-19 17:30:09.1234567 +11:00'

select CONVERT(datetime2, @createdon, 1)
--Output: 2008-12-19 06:30:09.12

select convert(datetimeoffset,CONVERT(datetime2, @createdon, 1))
--Output: 2008-12-19 06:30:09.1234567 +00:00
1 голос
/ 11 апреля 2019

Вы можете преобразовать DATETIMEOFFSET в тип DATETIME, используя следующий производный столбец:

DATEADD("hh", DATEDIFF("hh",((DT_DBTIMESTAMP)[DataColumn]), [DataColumn]), ((DT_DBTIMESTAMP)[DataColumn]))

Для более подробной информации проверьте следующую статью:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...