У меня есть требование, где мне нужно вставить дату из любого формата, например, мм / дд / гггг, дд / мм / гггг, гггг / мм / дд, дд-мм-гггг в формат даты / времени гггг-мм-дд.как это сделать?
Это то, что я пытался:
declare @date nvarchar(20)
set @date='2018/10/20'
SELECT case when @date=FORMAT(convert(date, @date, 105),'dd-MM-yyyy')
then (select convert(datetime,convert(date, @date, 105), 105))
when @date= FORMAT(convert(date, @date, 103),'dd/MM/yyyy')
then (select convert(datetime,convert(date, @date, 103), 103))
when @date= FORMAT(convert(date, @date, 110),'MM-dd-yyyy')
then (select convert(datetime,convert(date, @date, 110), 110))
when @date= FORMAT(convert(date, @date, 101),'MM/dd/yyyy')
then (select convert(datetime,convert(date, @date, 101), 101))
when @date= FORMAT(convert(date, @date, 23),'yyyy-MM-dd')
then (select convert(datetime,convert(date, @date, 23), 23))
when @date= FORMAT(convert(date, @date, 111),'yyyy/MM/dd')
then (select convert(datetime,convert(date, @date, 111), 111))
end
, но это не удалось при преобразовании '2018/10/20'
в 'dd/mm/yyyy'
и других не относящихся к делу форматов, которые используются в операторе case, кроме 'yyyy/MM/dd'
.