【问题标题】:Set language for Datetime functions in SQL Server在 SQL Server 中为日期时间函数设置语言
【发布时间】:2014-11-05 11:25:14
【问题描述】:

如果我运行以下查询:

select datename(month, dateadd(m,-1,getdate())) 

SQL Server 显示:十月。

如何将此语言更改为荷兰语?

不仅针对当前会话,还针对所有传入查询。查询由外部应用程序发送,因此我无法控制查询。

我试过了:

  • SET LANGUAGE DUTCH
  • EXEC sp_configure 'default language', 7 ;
  • Server properties - advanced - Default Language - Dutch

以上似乎都不起作用..

【问题讨论】:

  • 'set language' 应该可以工作 - 但仅适用于当前会话。如果您从某个程序而不是 SSMS 发出查询,那么您应该在同一查询中使用此设置,例如 'set language dutch;选择日期名称...'。但是,我会在客户端进行此类转换。
  • 它们似乎对我有用...SET LANGUAGE DUTCH 在选择给我“十月”(逐字)之前。
  • SET LANGUAGE 仅适用于当前会话。所以我猜你需要先执行 SET LANGUAGE Dutch 查询,然后再执行你的主查询。
  • 要设置语言,您需要在Master DB中编辑syslanguages表,检查以下URL:stackoverflow.com/questions/1187127/…
  • 服务器默认语言仅在您创建新登录时使用 - 因此,如果此应用程序用户使用的登录已存在,您需要更改每个登录的默认设置。 (并且默认语言只有在应用程序本身发出自己的错误SET LANGUAGE语句时才有效)

标签: sql sql-server


【解决方案1】:
    ALTER LOGIN [Domain\User] WITH DEFAULT_LANGUAGE = Dutch;

【讨论】:

    【解决方案2】:

    你可以像下面这样分别使用sp_configureRECONFIGURE关键字(我相信在sp_configure执行之后你没有使用RECONFIGURE):

    USE <your db>;
    GO
    EXEC sp_configure 'default language', 7 ;
    GO
    RECONFIGURE ;
    GO
    

    其中 7 是“荷兰语”的代码

    您可以运行以下查询以查看具有相应 ID 的所有语言:

    select langid, alias from sys.syslanguages
    

    参考:How to change default language for SQL Server?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-10
      • 2012-06-22
      • 2013-07-07
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多