Использование DATEFROMPARTS с функцией RIGHT / CHARINDEX - PullRequest
1 голос
/ 10 июля 2019

Хорошо, поэтому я переписываю некоторые предоставленные мне сценарии, и часть сценария строит дату из двух разных столбцов, один из которых может содержать такие данные, как этот 3|15, а затем эта построенная датапо сравнению с сегодняшней датой.

Исходный раздел запроса:

CASE WHEN rs.RecurrencePattern = 'Monthly'  AND DAYDIFF((CreateDate(GetYear(rs.ws_wg_mig_start_date),GetMonth(rs.ws_wg_mig_start_date), toint(StrParts(rs.RecurrencePatternParms, '|',1)))),(now())) < 0 THEN GetMonth(rs.ws_wg_mig_start_date)+1

Я думаю, что это MySQL, но я не совсем уверен.Я пытаюсь воссоздать это в SQL Server, и до сих пор я использую DATEFROMPARTS и связываю все вместе.Я использую NULLIF (CHARINDEX, чтобы получить значение после |, но если оно не существует, тогда все поле даты пустое. Мне нужна еще пара глаз на это, прежде чем я сойду с ума.

Текущий код SQL:

DATEFROMPARTS(datepart(year,rs.ws_wg_mig_start_date),datepart(month,rs.ws_wg_mig_start_date),Convert(int,Right(recurrence_pattern_params, NULLIF(CHARINDEX('|', reverse(recurrence_pattern_params)),0)-1)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...