如何查询数据库文化 (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。

YYYYMMDDYYYYMMDD HH:MM:SS 格式将始终有效,无论当前在 SQL Server 中选择的语言设置如何。

【讨论】:

【参考方案2】:

你不需要那个。

作为 DATES 的日期总是在客户端获得输入/输出,服务器文化在这里无关紧要,因为可视化/字符串转换发生在客户端。因此,使用变量 foe 查询参数并获取正确的类型作为输出(应该自动发生),您将不会遇到问题。 如果您必须插入字符串,请使用 ISO 表单 (2010-12-05 23:15:22.233),它在所有文化设置下都被识别为通用后备。

【讨论】:

以上是关于如何查询数据库文化 (SQL Server 2005)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 查询中排除周末?

如何编写一个查询以从SQL Server中包含类似名称的多个表中获取数据

如何提高我的查询性能 SQL Server

如何将sql server 数据库表中的某一列的某一字符替换成需要的字符

SQL Server中查询一个值出现的所有表。

sql语句将查询结果作为新表插入