簡體   English   中英

SQL Server 2005日期比較-排序規則問題

[英]SQL Server 2005 date comparison - collation issues

在我的數據庫中,我有一個通過鏈接服務器選項從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)

預先感謝您的任何想法。

克里斯,問候

該錯誤是在貨幣比較h.currency_cd = hxl.currency_cd上報告的 ,而不是在datediff上報告的,因此請嘗試對貨幣強制校對。

排序規則僅與字符(char,varchar,nvarchar)和文本類型相關。

在歸類並提供歸類表級別下,可以在帶有歸類主題的網絡搜索中找到許多技巧和代碼。

仍然,如果您有問題。 將excel的內容插入到@table或permenant表中,並在選擇進行比較時提供對該表的排序規則

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM