Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2005日期比较-排序规则问题_Sql_Sql Server 2005 - Fatal编程技术网

SQL Server 2005日期比较-排序规则问题

SQL Server 2005日期比较-排序规则问题,sql,sql-server-2005,Sql,Sql Server 2005,在我的数据库中,我有一个通过链接服务器选项从Excel工作表创建的表 我现在正试图将它的内容与我的一个主表进行比较 我正在比较的表在同一个数据库中 两个表中都有一个日期列,两种类型都是datetime,并且具有SQL\u Latin1\u General\u CP1\u CI\u AS的排序规则,与DB相同 服务器排序规则是Latin1\u General\u CI\u AS 但是,当我尝试运行一个比较表之间日期的查询时,会出现以下错误: Cannot resolve the col

在我的数据库中,我有一个通过链接服务器选项从Excel工作表创建的表

我现在正试图将它的内容与我的一个主表进行比较

我正在比较的表在同一个数据库中

两个表中都有一个日期列,两种类型都是datetime,并且具有SQL\u Latin1\u General\u CP1\u CI\u AS的排序规则,与DB相同

服务器排序规则是Latin1\u General\u CI\u 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

在货币比较中报告错误h.currency\u cd=hxl.currency\u cd,而不是datediff>,因此请尝试对货币进行强制排序


排序规则仅与字符(char、varchar、nvarchar)和文本类型相关。

在排序规则下,为排序规则表级别提供了许多提示和代码,可在网络搜索中使用排序规则主题

即使你有问题。在@table或permenant表中插入excel的内容,并在选择进行比较时提供该表的排序规则