Если все даты указаны в формате yyyy-MM-dd hh:mm:ss.sss
, то нет необходимости в пользовательской функции. SQL Server имеет CONVERT
и TRY_CONVERT
, который принимает коды стиля :
SELECT [DateFormat] AS [Date format],
[SourceDate] AS [Source date],
TRY_CONVERT(datetime,STUFF([SourceDate],11,1,'T'),126) AS [Start date]
FROM [dbo].[tbl_SourceDate];
Я также использовал STUFF
здесь, чтобы изменить ' '
на 'T'
(поскольку формат ISo использует T, а не пробел).