如何查询数据库文化 (SQL Server 2005)?
Posted
技术标签:
【中文标题】如何查询数据库文化 (SQL Server 2005)?【英文标题】:How can I query the database culture (SQL Server 2005)? 【发布时间】:2010-03-12 11:00:17 【问题描述】:如何查询数据库文化(SQL Server 2005)?
我在插入和获取日期时遇到问题,因为客户端的服务器与我的开发人员服务器运行的文化不同。
我可以调整日期,但我需要了解服务器的文化...
【问题讨论】:
我认为 SQL Server 从操作系统中获取了文化信息(假设您不是在谈论 CLR 查询) 是的,但如果开发者操作系统语言与服务器操作系统语言不同,就会产生问题。 【参考方案1】:您可以通过以下方式了解当前配置的语言:
SELECT @@language
你可能还想看看这个:
EXEC sp_helplanguage
它将显示可用的语言,以及它们具有的日期格式等。这基本上就是sys.syslanguages
系统目录表的内容。
至于日期处理 - 最好使用基于 DateTime 的参数化查询,或者如果您必须有日期字符串,请在 SQL Server 中使用 ISO-8601 date format。
YYYYMMDD
或 YYYYMMDD HH:MM:SS
格式将始终有效,无论当前在 SQL Server 中选择的语言设置如何。
【讨论】:
【参考方案2】:你不需要那个。
作为 DATES 的日期总是在客户端获得输入/输出,服务器文化在这里无关紧要,因为可视化/字符串转换发生在客户端。因此,使用变量 foe 查询参数并获取正确的类型作为输出(应该自动发生),您将不会遇到问题。 如果您必须插入字符串,请使用 ISO 表单 (2010-12-05 23:15:22.233),它在所有文化设置下都被识别为通用后备。【讨论】:
以上是关于如何查询数据库文化 (SQL Server 2005)?的主要内容,如果未能解决你的问题,请参考以下文章
如何编写一个查询以从SQL Server中包含类似名称的多个表中获取数据