SQL Server 2008 provided date and time data types as separate types derived from datetime2 type. However, it didn't provide a way to combine these without string manipulation. datetime allowed + operator, datetime2 does not, for valid reasons. SQL 2012 added DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds ) and DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
functions. The first one does not support nanoseconds so data loss will occur. the second one is useful but time value cannot be split into needed parts as DATEPART(datepart, date) does not support (fractions, hour_offset, minute_offset, precision) options to extract these from time value.
Therefore, there is no native way to put date and time together into datetime2 with no data loss.
This was logged but refused, based on incomplete reasoning.
In addition, such trivial operation should not require such ugly solution to call and execute 10 function calls to get 10 parts of full datetime2 and then 1 call to put it together or having to use "to string" conversion/concatenation utilizing non-standard CONVERT.
Therefore, this is an oversight not to provide such solution. I understand that + operator is not a good way to do that.
I have read this discussion at http://social.technet.microsoft.com/Forums/en-US/transactsql/thread/700be335-d4e1-464b-97ff-ecb58985b026
user discussion link