A new function is available: FORMAT
declare @d datetime = '2016-05-01';
SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS 'DateTime Result'
SELECT FORMAT( @d, 'dd', 'en-US' ) AS 'DateTime Result'
- BUT:
Steer clear away from it. People with gazillion bragging points on this forum have cautioned that this is a performance killer if you want your solution to scale.
So yes, it is unfortunate, but the way to do it is to deal with strings. T-SQL is not really meant to be a formatting tool - such code is often moved to the reporting tool.