SQL Server 2008 में निम्न कार्य करता है (SQL Fiddle ):
select convert(datetime, left(t, 10), 105) +
convert(time, substring(t, 12, 12), 114)
from (select '01-11-1999 09:22:16.162632' as t) t;
विडंबना यह है कि यह SQL सर्वर 2012 में काम नहीं करता। वहाँ, मुझे लगता है कि आपको यह करना होगा:
select dateadd(ms, datediff(ms, 0, convert(datetime, substring(t, 12, 12), 114)),
convert(datetime, left(t, 10), 105)
)
from (select '01-11-1999 09:22:16.162632' as t) t;
दोनों ही मामलों में ध्यान दें, यह माइक्रोसेकंड के बजाय मिलीसेकंड का उपयोग करता है। मुझे विश्वास नहीं है कि SQL सर्वर इतनी सटीकता के साथ दिनांक समय मान प्रदान करता है।