Столкновение типа операнда datetime2 несовместимо с tinyint в доступе ms - PullRequest
1 голос
/ 03 июля 2019

Перенос базы данных MSAccess на сервер SQL. Все необходимые обновления были сделаны, чтобы направить запросы и таблицы на новый сервер SQL. Теперь, когда я открываю форму, я получаю, что « тип операндов clash datetime2 несовместим с tinyint ». Может кто-нибудь знает как это исправить?

Я уже попробовал BETWEEN и все еще получил ту же ошибку

SELECT DISTINCTROW
       [Overall query].Project,
       [Overall query].Complete,
       [Overall query].[Lot #],
       [Overall query].[Lot qty],
       [Overall query].[dbo_Visual table].[Actual S/S],
       [Overall query].[dbo_Visual table].[No of reject],
       [Overall query].[dbo_Testing table].[Actual S/S],
       [Overall query]. [dbo_Testing table].[No of reject],
       [Overall query].[Lot accept ( final )],
       [Overall query].[Lot reject ( final )],
       [Overall query].[FQA II],
       [Overall query].[FQA III]
FROM [Overall query]
WHERE ((([Overall query].Complete)>="&Forms![Status form]![Start Date]&"
  AND ([Overall query].Complete)<="&Forms![Status form]![End Date]&"
  AND ([Overall query].Complete)=True)
  AND (([Overall query].[Lot #]) Like '%1')
  AND (([Overall query].[FQA II])=False)
  AND (([Overall query].[FQA III])=False))
ORDER BY [Overall query].Project, [Overall query].Complete;

Я думаю, что проблема в этом, где условие

[Overall query].Complete)>="&Forms![Status form]![Start Date]&" And ([Overall query].Complete)<="&Forms![Status form]![End Date]&"

1 Ответ

0 голосов
/ 13 июля 2019

Прежде чем играть с запросом, откройте связанную таблицу в режиме конструктора (клиент доступа).

Если столбец DateTime2 рассматривается как столбец текста / строки, а не как Дата / время, тогда выздесь есть два варианта:

Установить + использовать родной драйвер 11 или более поздней версии для связанных таблиц.SSMA по умолчанию использует более новую дату и время2 в качестве значений по умолчанию при переходе на Access.Однако стандартный встроенный драйвер SQL, используемый для связи таблиц, НЕ поддерживает datetime2, и связанные таблицы будут отображать эти столбцы в виде строки (и, следовательно, вы вводите ошибку).

Если вы не хотите идтидо боли установки родного 11-го (или более позднего) ODBC-драйвера, тогда, если у вас есть, скажем, только 1 или 2 таблицы, то из студии sql измените столбцы datetime2 на столбец datetime (и заново свяжите ваши таблицы).

Таким образом, стандартный драйвер SQL не поддерживает столбцы datetime2.Вы также можете во время миграции SSMA изменить значение по умолчанию, чтобы использовать datetime, а не datetime2.Итак, что когда-либо кажется вам менее трудоемким, вы должны:

a) повторно перенести данные и убедиться, что datetime2 не используется.б) откройте в sql studio и измените любой datetime2 на столбец datetime.c) установить на рабочую станцию ​​родные драйверы версии 11 или новее и заново связать их, поэтому при доступе теперь будут правильно отображаться столбцы datetime2 как дата / время.

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