Сравнение дат в SQL Server 2005 - проблемы сопоставления - PullRequest
2 голосов
/ 12 февраля 2009

В моей БД у меня есть таблица, которая была создана из листа Excel через опцию Связанный сервер.

Я сейчас пытаюсь сравнить его содержимое с одной из моих основных таблиц.

Таблицы, которые я сравниваю, находятся в одной базе данных.

В обеих таблицах есть столбец даты, оба типа имеют дату и время и имеют параметры сортировки SQL_Latin1_General_CP1_CI_AS, такие же, как в БД.

Сортировка сервера: Latin1_General_CI_AS

Однако, когда я пытаюсь выполнить запрос, сравнивающий даты между таблицами, я получаю ошибку:

      Cannot resolve the collation conflict between
      "Latin1_General_CI_AS" and
      "SQL_Latin1_General_CP1_CI_AS" in the
      equal to operation.

Я пробовал с опцией COLLATE и без нее, используя обе настройки сортировки.

Мой запрос:

select * , hxl.holiday_dt, 
datediff(d, h.holiday_dt collate SQL_Latin1_General_CP1_CI_AS, 
            hxl.holiday_dt collate SQL_Latin1_General_CP1_CI_AS)
from holiday h, Holiday_XL hxl
where h.currency_cd=hxl.currency_cd

Фактически любой запрос, включающий обе таблицы, выдает одну и ту же ошибку сопоставления, например, такую:

select count(*)
from Holiday_XL c
where c.currency_cd in (select distinct h.currency_cd from holiday h)

Заранее спасибо за любые мысли.

С уважением, Chris

Ответы [ 2 ]

5 голосов
/ 12 февраля 2009

Сообщается об ошибке при сравнении валют h.currency_cd = hxl.currency_cd , а не по датировке, поэтому попробуйте принудительно сопоставить валюты.

Параметры сортировки актуальны только для символьных (char, varchar, nvarchar) и текстовых типов.

0 голосов
/ 13 февраля 2009

В разделе Сортировка и таблица уровня сортировки есть много советов и кода, доступных в поиске по сети с темой сопоставления.

Тем не менее, если у вас есть проблемы. Вставьте содержимое файла Excel в таблицу @table или permenant и укажите сопоставление для этой таблицы, выбирая для сравнения

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