SQL Server Datetime issues. American vs. British?(SQL Server 日期时间问题.美国VS英国?)
问题描述
在我的测试数据库中,日期以 DD/MM/YYYY 格式显示.显示是指右键单击,在Management Studio中打开表格,返回的数据以DD/MM/YYYY格式显示.
On my test DB, the dates are displayed in a DD/MM/YYYY format. By displayed I mean when you right click, open table in Management Studio, the returned data are displayed in a DD/MM/YYYY format.
有趣的是,当我编写 T-SQL 来检索记录时,我必须输入 MM/DD/YYYY 格式才能取回正确的数据.无论如何我可以将其与 DD/MM/YYYY 格式对齐吗?
Funny thing is, when I write T-SQL to retrieve records, I have to input a MM/DD/YYYY format to get back the right data. Is there anyway I can align this to a DD/MM/YYYY format?
推荐答案
您可以使用 SET LANGUAGE 以选择 SQL Server 期望 在查询中 的日期格式(我认为管理工作室使用客户端计算机的区域设置用于显示目的,但不确定).但是,我建议使用参数传递值而不是将它们嵌入到查询语句中.如果您使用参数,您将不会遇到任何问题.一切都得到了照顾.
You can use SET LANGUAGE to choose the date format that SQL Server expects in queries (I think management studio uses client computer's regional settings for display purposes, not sure though). However, I suggest passing values using parameters instead of embedding them in query statement. You won't encounter any issues if you use parameters. Everything is taken care of.
set language us_english
declare @d datetime = '1929/12/18'
set language british
declare @d datetime = '1929/12/18' -- fails
更改服务器默认语言:
declare @langid int = (select langid from syslanguages where name = 'british')
exec sp_configure 'default language', @langid
reconfigure with override
这篇关于SQL Server 日期时间问题.美国VS英国?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:SQL Server 日期时间问题.美国VS英国?


- 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01
- 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01
- 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01
- 更改自动增量起始编号? 2021-01-01
- 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
- 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01
- 导入具有可变标题的 Excel 文件 2021-01-01
- SQL 临时表问题 2022-01-01
- 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
- 在SQL中,如何为每个组选择前2行 2021-01-01