K2 blackpearl: Создать DateTime[] из полей данных
Я не могу понять, как использовать функцию DateTime Maximum с несколькими полями данных. У меня есть 2 (DateTime) поля данных, которые я хочу получить максимальное значение.
Поле "значения" позволяет вводить только литерал или опускать в ОДНОМ поле. Как я могу создать массив из моих 2 полей?
Спасибо!
1 ответ
Обь
Я думаю, что проблема у вас заключается в том, что ввод не дата, а массив дат: DateTime[]
Я не думаю, что эта функция обычно предназначена для того, чтобы помочь вам найти самое большое между двумя датами в 2 полях данных.
Эта функция работает так, что вам нужно дать ей массив и, конечно, второй параметр - это дата.
Для этого вы можете использовать smartobject, который вернет вам список даты и времени (когда вы вызываете этот список, убедитесь, что вы не возвращаете только первое, это значение по умолчанию).
Функция будет работать нормально и сообщит вам, какая из дат в этом списке является "максимальной".
Теперь, если вам действительно нужно использовать даты в этих полях данных, вам сначала нужно преобразовать эти 2 datetime в массив datetime. К сожалению, я не знаю о функции, способной сделать это (я могу ошибаться...).
Тем не менее я вижу 3 варианта:
- Вы пишете пользовательскую функцию, которая будет делать именно это: взять 2 ввода и вернуть их массив (в статье базы знаний объясняется, как это сделать)
- Вы используете хранимую процедуру (которую вы вызываете через смарт-объект), которая преобразует ваши 2 данные в массив, и затем вы можете использовать функцию, которую вы упомянули 3. Я думаю, что вы можете упростить еще больше, позволив хранимой процедуре найти максимум для вас. Увидеть ниже.
Простая версия для #3 будет:
declare @D1 datetime
declare @D2 datetime
SET @D1 = getdate()
SET @D2 = getdate()+100
if (@D1>@D2)
select @D1
else
select @D2
Надеюсь, это поможет.