2012-06-20 21 views
2

在使用SSIS/SSAS的數據倉庫項目上,我必須生成我自己的時間維度,因爲我已將個人數據集成到一起。相同查詢中的SQL Server多種日期語言

我的問題是與SSAS,因爲我還需要整合翻譯。閱讀完文檔後,我找到了一個命令,通過使用SET LANGUAGE ENGLISH來爲當前會話設置語言,但我無法爲查詢的不同字段更改語言。

有沒有辦法在德語中生成MONTH_NAME並且在德語中還得到MONTH_NAME_DE

下面是我在互聯網上找到該腳本

WITH Mangal as 
( 
    SELECT Cast ('1870-01-01' as DateTime) Date --Start Date 
    UNION ALL 
    SELECT Date + 1 
    FROM Mangal 
    WHERE Date + 1 < = '2015-12-31' --End date 
) 

SELECT 
    Row_Number() OVER (ORDER BY Date) as ID 
    , Date as DATE_TIME 
    , YEAR (date) as YEAR_NB 
    , MONTH (date) as MONTH_NB 
    , DAY (date) as DAY_NUMBER 
    , DateName (mm, date) as MONTH_NAME 
    , LEFT (DateName (mm, date), 3) KMONTH_NAME 
    , DateName (dw, date) as DAY_NAME 
    , LEFT (DateName (dw, date), 3) as KDAY_NAME 
    , (SELECT TOP 1 FIELD 
     FROM TABLEXY 
     WHERE Date BETWEEN TABLEXY.DATE_FROM AND LEGISLATUR.DATE_TO 
      AND LANGAGE = 'FR' 
    ) as PERSONAL_FIELD 
    , (SELECT TOP 1 FIELD 
     FROM TABLEXY 
     WHERE Date BETWEEN TABLEXY.DATE_FROM AND LEGISLATUR.DATE_TO 
      AND LANGAGE = 'DE' 
    ) as PERSONAL_FIELD_DE 


FROM Mangal 

OPTION (MAXRECURSION 0) 

回答

1

SQL Server有含月份和星期天的名稱的表。但是,它們存儲爲逗號分隔值:

select 
    months, 
    shortmonths, 
    days 
from 
    master.dbo.syslanguages 
where 
    alias in ('English','French', 'German') 

您可能會在查詢中使用它。

+0

謝謝你的回答。但是它們被「分解成」一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月等。陶氏你知道如何匹配我的查詢之間的關聯? –

+0

我發現了一篇文章,解釋如何在這裏分割'syslanguages'數據:http://sqlserverdiaries.com/blog/index.php/2012/01/using-built-in-multi-language-month-and- weekday-names-for-application-lists /我認爲這會有所幫助。再一次,謝謝你的回答! –