我有以下查询:
DECLARE @someDateTime DATETIME = '2019-12-01 00:00:00.000'; -- 1st December 2019
SELECT @someDateTime;
Run Code Online (Sandbox Code Playgroud)
结果
DECLARE @someDateTime DATETIME = '2019-12-01 00:00:00.000'; -- 1st December 2019
SELECT @someDateTime;
Run Code Online (Sandbox Code Playgroud)
我预计结果是2019-12-01 00:00:00.000(2019 年 12 月 1日)- 由于某种未知原因,月份和日期交换了。
直到最近,我对这种格式还没有遇到过任何问题。
如何以“YYYY-MM-DD HH:mm:ss.000”格式输入日期,并在分配给变量/在选择中显示后保持该格式?
什么设置决定了可能已更改的格式?
潜在有用的信息
dbcc useroptions
Run Code Online (Sandbox Code Playgroud)
结果:
2019-01-12 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
查询1
将日期更改为如果交换则无效的日期
DECLARE @someDateTime DATETIME = '2019-12-20 00:00:00.000';
SELECT @someDateTime;
Run Code Online (Sandbox Code Playgroud)
结果:
消息 242,级别 16,状态 3,第 4 行
varchar 数据类型到日期时间数据类型的转换导致值超出范围。
查询2
声明变量后设置变量
DECLARE @someDateTime DATETIME;
SET @someDateTime = '2019-12-01 00:00:00.000';
SELECT @someDateTime;
Run Code Online (Sandbox Code Playgroud)
结果 …