Por que um módulo de função se ABAP é muito mais curto?
Lembre-se de que se você converte uma variável do tipo T em I (inteiro), o SAP converte o tempo em segundos.
DATA(block) = CONV t( char_timestamp+8(6) ) DIV 1800 + 1. " 1800 segundos = 30 minutos
Exemplos:
DATA: char_timestamp TYPE c LENGTH 14,
block TYPE i.
char_timestamp = '2020063000149'.
block = CONV t( char_timestamp+8(6) ) DIV 1800 + 1.
ASSERT block = 1.
char_timestamp = '20200630003850'.
block = CONV t( char_timestamp+8(6) ) DIV 1800 + 1.
ASSERT block = 2.
EDIÇÃO: tenha cuidado com o fuso horário em que o tempo é expresso, 11h na França (9 ou 10h UTC) não é o mesmo que 11h na Coreia do Sul (~2h UTC). UTC é a mesma hora para todos no Universo/Mundo, agora são 9:39 para todos no mundo. Se você deseja um "número de bloco UTC", deve converter seu tempo para UTC e primeiro deve saber em que fuso horário seu tempo é expresso. Para mais informações, consulte a resposta e o comentário de Michael P.