SQL Server的syslanguage表應用一例

來源:互聯網
上載者:User
server
-----------------------------------------------------------------------------------------------

作者:翁彥

歡迎轉載,請保留此申明資訊。

歡迎聯絡我,enhydra_boy@tom.com

----------------------------------------------------------------------------------------------

最近,在csdn論壇上,前後回答了兩位位朋友的問題,覺得有必要總結一下。

問題是這樣

1 SQL Server 2000是中文版的,想能按照英文方式顯示日期格式?

2 SQL Server 2000是中文版的,想能購顯示中文月名?

讓我們來分析一下,顯示日期格式肯定和language有關,而且應該和當前session的language設定有關,肯定和伺服器,資料庫是否是中英文無關。

那麼第一個問題就很簡單了,

只需要

set language us_english
select convert(varchar(20),getdate(),107)
set language 簡體中文

結果如下

Changed language setting to us_english.
                    
--------------------
Sep 01, 2003

(所影響的行數為 1 行)

已將語言設定改為 簡體中文。


但是第二個問題,似乎就不行了,我們可以測試一下

set language 簡體中文

select convert(varchar(20),getdate(),107)

得到的卻是

09 01,2003

不是需要的九月。

這需要進一步分析了。資料庫支援的語言,應該有對應的日期月份簡寫的設定。

master.dbo.syslanguages就是存放了對應的資訊。

可以查看以下syslanguages的結構

我們關心的是是其中的shortmonths和months這兩項。
我們看到簡體中文這一條,shortmonths,months都是01,02,03,...。

所以無論你怎麼設定language,結果都是09 而不會是九月。

解決方案,大家都想到了。對了就是修改系統資料表。

use master
sp_configure 'allow update','1'
go
reconfigure with override
go
update dbo.syslanguages
set shortmonths='一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月',
months='一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月'  where name='簡體中文'
go
sp_configure 'allow update','0'
go
reconfigure with override
go


然後重起一下資料庫伺服器。

然後運行
select convert(varchar(20),getdate(),107)
go

--------------------
九月 01, 2003


select convert(varchar(100),getdate(),9)
go
----------------------------------------------------------------------------------------------------
九月  1 2003 11:36:25:507AM


問題解決了。

看來,很多問題需要仔細的想一下,分析一下,看看文檔,自己手工實踐一下,都能迎刃而解。

 


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。