Функция сама возвращает дату и время, «29 февраля 2012 г. 22:00» и «29.02.2012 г. 10:00» являются просто строковыми представлениями этой даты (я предполагаю, что переключатели AM и PM не имеют отношения к вопросу и являются просто ошибкой). Если вы хотите отформатировать дату как конкретную строку, посмотрите на функцию CONVERT . например:
DECLARE @Date DATETIME
SET @Date = scrubDateString(@YourString)
SELECT CONVERT(VARCHAR, @Date, 101) + ' ' + RIGHT(CONVERT(VARCHAR, @Date, 0), 7) [Date]
Хотя я бы настоятельно рекомендовал оставить вашу дату в качестве даты и делать любое форматирование на стороне приложения, если это вообще возможно. Если я ошибся в отношении переключателя AM PM, вы можете изменить приведенный выше код следующим образом:
DECLARE @Date DATETIME
SET @Date = scrubDateString(@YourString)
IF (DATEPART(HOUR, @Date) > 12)
BEGIN
SET @Date = DATEADD(HOUR, -12, @Date)
END
SELECT CONVERT(VARCHAR, @Date, 101) + ' ' + RIGHT(CONVERT(VARCHAR, @Date, 0), 7) [Date]