Here is the logic testing data compiled by Brad Schulz for TSQL Challenge 18. Due to the special nature of this challenge, we will be testing the solutions with three different language settings: English, Swedish and Czech.
Sample Data
Mth Yr ----------- ----------- 8 2009 2 1900 2 2015 2 2000 10 1959 9 2008 1 1975 5 1987
Sample Script
declare @t table (Mth int, Yr int) insert @t select 8,2009 union all select 2,1900 union all select 2,2015 union all select 2,2000 union all select 10,1959 union all select 9,2008 union all select 1,1975 union all select 5,1987
Each solution will be tested with three different language settings. Given below are the language settings and the expected results based on the above sample data.
Language Setting (English)
set language english set datefirst 4
Expected Results (English)
+-----------------------------+ | FEBRUARY 1900 | |=============================| | Sun Mon Tue Wed Thu Fri Sat | |-----------------------------| | 1 2 3 | | 4 5 6 7 8 9 10 | | 11 12 13 14 15 16 17 | | 18 19 20 21 22 23 24 | | 25 26 27 28 | +-----------------------------+ +-----------------------------+ | OCTOBER 1959 | |=============================| | Sun Mon Tue Wed Thu Fri Sat | |-----------------------------| | 1 2 3 | | 4 5 6 7 8 9 10 | | 11 12 13 14 15 16 17 | | 18 19 20 21 22 23 24 | | 25 26 27 28 29 30 31 | +-----------------------------+ +-----------------------------+ | JANUARY 1975 | |=============================| | Sun Mon Tue Wed Thu Fri Sat | |-----------------------------| | 1 2 3 4 | | 5 6 7 8 9 10 11 | | 12 13 14 15 16 17 18 | | 19 20 21 22 23 24 25 | | 26 27 28 29 30 31 | +-----------------------------+ +-----------------------------+ | MAY 1987 | |=============================| | Sun Mon Tue Wed Thu Fri Sat | |-----------------------------| | 1 2 | | 3 4 5 6 7 8 9 | | 10 11 12 13 14 15 16 | | 17 18 19 20 21 22 23 | | 24 25 26 27 28 29 30 | | 31 | +-----------------------------+ +-----------------------------+ | FEBRUARY 2000 | |=============================| | Sun Mon Tue Wed Thu Fri Sat | |-----------------------------| | 1 2 3 4 5 | | 6 7 8 9 10 11 12 | | 13 14 15 16 17 18 19 | | 20 21 22 23 24 25 26 | | 27 28 29 | +-----------------------------+ +-----------------------------+ | SEPTEMBER 2008 | |=============================| | Sun Mon Tue Wed Thu Fri Sat | |-----------------------------| | 1 2 3 4 5 6 | | 7 8 9 10 11 12 13 | | 14 15 16 17 18 19 20 | | 21 22 23 24 25 26 27 | | 28 29 30 | +-----------------------------+ +-----------------------------+ | AUGUST 2009 | |=============================| | Sun Mon Tue Wed Thu Fri Sat | |-----------------------------| | 1 | | 2 3 4 5 6 7 8 | | 9 10 11 12 13 14 15 | | 16 17 18 19 20 21 22 | | 23 24 25 26 27 28 29 | | 30 31 | +-----------------------------+ +-----------------------------+ | FEBRUARY 2015 | |=============================| | Sun Mon Tue Wed Thu Fri Sat | |-----------------------------| | 1 2 3 4 5 6 7 | | 8 9 10 11 12 13 14 | | 15 16 17 18 19 20 21 | | 22 23 24 25 26 27 28 | +-----------------------------+
Language Setting (Swedish)
set language swedish set datefirst 6
Expected Resuluts (Swedish)
+-----------------------------+ | FEBRUARI 1900 | |=============================| | sön mån tis ons tor fre lör | |-----------------------------| | 1 2 3 | | 4 5 6 7 8 9 10 | | 11 12 13 14 15 16 17 | | 18 19 20 21 22 23 24 | | 25 26 27 28 | +-----------------------------+ +-----------------------------+ | OKTOBER 1959 | |=============================| | sön mån tis ons tor fre lör | |-----------------------------| | 1 2 3 | | 4 5 6 7 8 9 10 | | 11 12 13 14 15 16 17 | | 18 19 20 21 22 23 24 | | 25 26 27 28 29 30 31 | +-----------------------------+ +-----------------------------+ | JANUARI 1975 | |=============================| | sön mån tis ons tor fre lör | |-----------------------------| | 1 2 3 4 | | 5 6 7 8 9 10 11 | | 12 13 14 15 16 17 18 | | 19 20 21 22 23 24 25 | | 26 27 28 29 30 31 | +-----------------------------+ +-----------------------------+ | MAJ 1987 | |=============================| | sön mån tis ons tor fre lör | |-----------------------------| | 1 2 | | 3 4 5 6 7 8 9 | | 10 11 12 13 14 15 16 | | 17 18 19 20 21 22 23 | | 24 25 26 27 28 29 30 | | 31 | +-----------------------------+ +-----------------------------+ | FEBRUARI 2000 | |=============================| | sön mån tis ons tor fre lör | |-----------------------------| | 1 2 3 4 5 | | 6 7 8 9 10 11 12 | | 13 14 15 16 17 18 19 | | 20 21 22 23 24 25 26 | | 27 28 29 | +-----------------------------+ +-----------------------------+ | SEPTEMBER 2008 | |=============================| | sön mån tis ons tor fre lör | |-----------------------------| | 1 2 3 4 5 6 | | 7 8 9 10 11 12 13 | | 14 15 16 17 18 19 20 | | 21 22 23 24 25 26 27 | | 28 29 30 | +-----------------------------+ +-----------------------------+ | AUGUSTI 2009 | |=============================| | sön mån tis ons tor fre lör | |-----------------------------| | 1 | | 2 3 4 5 6 7 8 | | 9 10 11 12 13 14 15 | | 16 17 18 19 20 21 22 | | 23 24 25 26 27 28 29 | | 30 31 | +-----------------------------+ +-----------------------------+ | FEBRUARI 2015 | |=============================| | sön mån tis ons tor fre lör | |-----------------------------| | 1 2 3 4 5 6 7 | | 8 9 10 11 12 13 14 | | 15 16 17 18 19 20 21 | | 22 23 24 25 26 27 28 | +-----------------------------+
Language Setting (Czech)
set language czech set datefirst 2
Expected Resuluts (Czech)
+-----------------------------+ | ÚNOR 1900 | |=============================| | ned pon úte stř čtv pát sob | |-----------------------------| | 1 2 3 | | 4 5 6 7 8 9 10 | | 11 12 13 14 15 16 17 | | 18 19 20 21 22 23 24 | | 25 26 27 28 | +-----------------------------+ +-----------------------------+ | ŘÍJEN 1959 | |=============================| | ned pon úte stř čtv pát sob | |-----------------------------| | 1 2 3 | | 4 5 6 7 8 9 10 | | 11 12 13 14 15 16 17 | | 18 19 20 21 22 23 24 | | 25 26 27 28 29 30 31 | +-----------------------------+ +-----------------------------+ | LEDEN 1975 | |=============================| | ned pon úte stř čtv pát sob | |-----------------------------| | 1 2 3 4 | | 5 6 7 8 9 10 11 | | 12 13 14 15 16 17 18 | | 19 20 21 22 23 24 25 | | 26 27 28 29 30 31 | +-----------------------------+ +-----------------------------+ | KVĚTEN 1987 | |=============================| | ned pon úte stř čtv pát sob | |-----------------------------| | 1 2 | | 3 4 5 6 7 8 9 | | 10 11 12 13 14 15 16 | | 17 18 19 20 21 22 23 | | 24 25 26 27 28 29 30 | | 31 | +-----------------------------+ +-----------------------------+ | ÚNOR 2000 | |=============================| | ned pon úte stř čtv pát sob | |-----------------------------| | 1 2 3 4 5 | | 6 7 8 9 10 11 12 | | 13 14 15 16 17 18 19 | | 20 21 22 23 24 25 26 | | 27 28 29 | +-----------------------------+ +-----------------------------+ | ZÁŘÍ 2008 | |=============================| | ned pon úte stř čtv pát sob | |-----------------------------| | 1 2 3 4 5 6 | | 7 8 9 10 11 12 13 | | 14 15 16 17 18 19 20 | | 21 22 23 24 25 26 27 | | 28 29 30 | +-----------------------------+ +-----------------------------+ | SRPEN 2009 | |=============================| | ned pon úte stř čtv pát sob | |-----------------------------| | 1 | | 2 3 4 5 6 7 8 | | 9 10 11 12 13 14 15 | | 16 17 18 19 20 21 22 | | 23 24 25 26 27 28 29 | | 30 31 | +-----------------------------+ +-----------------------------+ | ÚNOR 2015 | |=============================| | ned pon úte stř čtv pát sob | |-----------------------------| | 1 2 3 4 5 6 7 | | 8 9 10 11 12 13 14 | | 15 16 17 18 19 20 21 | | 22 23 24 25 26 27 28 | +-----------------------------+