I tested the scripts in one of dev box in SQL2016. the results are below. Each scripts ran 100 times (at 2 different times)
Included the method suggested by Scott Pletcher
CONVERT(CHAR(2), SomeDate, 1)
Run#1
Method AvgTime(ms)
PRECAST Method 553.07
DATENAME Method 518.48
MATH OVERRUN Method 526.75
ScottPletcher Method 483.83
Ru#2
PRECAST Method 565.5
DATENAME Method 515.25
MATH OVERRUN Method 526.97
ScottPletcher Method 501.11