我和同事被迫使用不同的 SQL 服务器日期格式
Colleagues and I forced to use different SQL Server date formats
这真的开始困扰我了,如果有人遇到过的话。我们这里没有成熟的 DBA,我们找不到可以解决问题的设置。
基本上,在运行ning查询的时候,我们每个人都要对DATEFORMAT进行不同的设置。我左边的同事必须设置 DATEFORMAT DMY,而如果我收到她写的任何查询,我实际上必须强制查询到 SET DATEFORMAT YMD。我的另一位同事最终不得不像美国格式一样执行 SET DATEFORMAT YDM。
这是否可以通过某处设置进行更改?在我使用过的所有工作场所中,MS SQL Serve 我以前从未遇到过这个问题,也不知道如何解决!
编辑:回应评论;是的,这些查询将 运行 在同一服务器和数据库上。
您可以将日期文字定义为 ISO-8601(与文化无关):
The advantage in using the ISO 8601 format is that it is an international standard. Also, datetime values that are specified by using this format are unambiguous. Also, this format is not affected by the SET DATEFORMAT or SET LANGUAGE settings.
SELECT *
FROM tab
WHERE col = 'yyyy-mm-ddThh:mm:ss';
或:
SELECT *
FROM tab
WHERE col = 'yyyymmdd';
这真的开始困扰我了,如果有人遇到过的话。我们这里没有成熟的 DBA,我们找不到可以解决问题的设置。
基本上,在运行ning查询的时候,我们每个人都要对DATEFORMAT进行不同的设置。我左边的同事必须设置 DATEFORMAT DMY,而如果我收到她写的任何查询,我实际上必须强制查询到 SET DATEFORMAT YMD。我的另一位同事最终不得不像美国格式一样执行 SET DATEFORMAT YDM。
这是否可以通过某处设置进行更改?在我使用过的所有工作场所中,MS SQL Serve 我以前从未遇到过这个问题,也不知道如何解决!
编辑:回应评论;是的,这些查询将 运行 在同一服务器和数据库上。
您可以将日期文字定义为 ISO-8601(与文化无关):
The advantage in using the ISO 8601 format is that it is an international standard. Also, datetime values that are specified by using this format are unambiguous. Also, this format is not affected by the SET DATEFORMAT or SET LANGUAGE settings.
SELECT *
FROM tab
WHERE col = 'yyyy-mm-ddThh:mm:ss';
或:
SELECT *
FROM tab
WHERE col = 'yyyymmdd';