Хорошо, поэтому я переписываю некоторые предоставленные мне сценарии, и часть сценария строит дату из двух разных столбцов, один из которых может содержать такие данные, как этот 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)))