HANA: выражение для входного параметра для преобразования строки времени в сегодняшнюю временную метку

#filter #view #data-modeling #hana

#Фильтр #Вид #моделирование данных #hana

Вопрос:

В SAP HANA я могу использовать фильтры в качестве выражения SQL или хранилища столбцов в представлении моделирования (например, в представлении вычислений).

Я пытаюсь преобразовать временную строку типа 08:00:00 во временную метку, которая всегда должна принимать сегодняшнюю дату.

Единственная маршрутизация hana, которую я нашел до сих пор, — это функция TO_TIMESTAMP( [, ]).

Есть ли какая-либо встроенная функция для моего запроса или как еще вы могли бы решить эту проблему?

Спасибо и БР.

РЕДАКТИРОВАТЬ: вот как я пытаюсь объединить сегодняшнюю дату и введенное время во временную метку:

longdate(строка(дата(сейчас())) строка(‘ ‘) строка (время($$P_StartShift$$)) строка (‘.123456’))

Ответ №1:

У HANA нет четкого конструктивного API для типов данных datetime. Итак, это своего рода обходной путь.

Идея здесь в том, что у вас есть время дня, предоставленное в качестве пользовательского ввода.

С помощью этого мы можем вычислить секунды, прошедшие с полуночи, которые, в свою очередь, могут быть добавлены к current_date.

В HANA SQL это выглядит так:

 select
     to_time ('13:01', 'HH24:MI') user_input_time
   , current_date
  
   , seconds_between ('00:00'
                    , to_time ('13:01', 'HH24:MI')) secs_since_midnight
   
   , add_seconds (current_date
                , seconds_between ('00:00'
                                  , to_time ('13:01', 'HH24:MI')
                                  )
                 ) current_date_user_time
from
    dummy;

/*
USER_INPUT_TIME CURRENT_DATE    SECS_SINCE_MIDNIGHT CURRENT_DATE_USER_TIME 
1:01:00 PM      25/08/2020      46,860              25/08/2020 1:01:00.0 PM
*/