I have recently come across that SQL Server has setting which controls how it interpret year number when specified as two digits.
Since year number contains 4 digits (e.g. 2024), if user specify year as two digit (e.g. 24) SQL server need to know a way to identify how to interpret 2 digit year as a full 4 digit year. For example 24 can be year 1924 or year 2024 or even year 2124.
Default setting for this is 2049, which means two digit years are interpret as years from 1950 to 2049.
00 => Interpret as => 2000
20 => Interpret as => 2020
49 => Interpret as => 2049
50 => Interpret as => 1950
78 => Interpret as => 1978
This setting can be change in Server Properties.
Right click on the SQL server node, and select properties. Then go to "Advanced" section.
Or Using TSQL.
USE AdventureWorks2022;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE ;
GO
EXEC sp_configure 'two digit year cutoff', 2030 ;
GO
RECONFIGURE;
GO
Note setting is in advanced settings section.
Above code will set the two year cut off setting to 2030, which means from year 1931 to 2030.
It is always recommended to use 4 digit in your code to avoid ambiguity.
Reference -> Microsoft Books Online
No comments:
Post a Comment