我为此测试创建了以下简单表:
DROP TABLE DateFieldTest
CREATE TABLE DateFieldTest
(
DateField Date NOT NULL
)
INSERT INTO DateFieldTest VALUES ('2013-07-15')
INSERT INTO DateFieldTest VALUES ('2013-07-16')
INSERT INTO DateFieldTest VALUES ('2013-07-17')
INSERT INTO DateFieldTest VALUES ('2013-07-05')
INSERT INTO DateFieldTest VALUES ('2013-07-06')
INSERT INTO DateFieldTest VALUES ('2013-07-07')
INSERT INTO DateFieldTest VALUES ('2013-06-05')
INSERT INTO DateFieldTest VALUES ('2013-06-06')
INSERT INTO DateFieldTest VALUES ('2013-06-07')
INSERT INTO DateFieldTest VALUES ('2013-05-05')
INSERT INTO DateFieldTest VALUES ('2013-05-06')
INSERT INTO DateFieldTest VALUES ('2013-05-07')
SELECT * from DateFieldTest where DateField >= '2013-07-05'
SELECT * from DateFieldTest where DateField >= '2013-07-06'
SELECT * from DateFieldTest where DateField >= '2013-07-07'
SELECT * from DateFieldTest where DateField >= '05/07/2013'
SELECT * from DateFieldTest where DateField >= '06/07/2013'
SELECT * from DateFieldTest where DateField >= '07/07/2013'
SELECT * from DateFieldTest where DateField >= '07/05/2013'
SELECT * from DateFieldTest where DateField >= '07/06/2013'
SELECT * from DateFieldTest where DateField >= '07/07/2013'
SELECT * from DateFieldTest where DateField >= '24/04/2013'
除了最后一个查询之外的所有查询都执行。我遇到的问题是我的不同用户有不同的日期格式,有些用户的日期格式是 dd/mm/yyyy,而不是 mm/dd/yyyyy 的标准美国/加拿大。
我知道我可以使用转换函数来转换日期,但我正在使用旧查询和软件,这些查询和软件只是使用用户输入的日期。我想知道如何指示 SQL Server 2005+ 在其语言环境中使用用户的短日期格式。