Ciekawostka SY-UZEIT

Jeśli programujesz, administrujesz, integrujesz i masz wątpliwość lub obawę, to właśnie najlepsze miejsce dla Ciebie. Pisz śmiało...
wojtas7
Posty: 1056
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 313 times

Ciekawostka SY-UZEIT

Post autor: wojtas7 »

Taki kod:

Kod: Zaznacz cały

data: lv_time type sy-uzeit.

lv_time = 140000.  "  powinno być w apostrofach godzina 14:00:00, więc '140000' ale apostrofów nie ma.
Rezultat - w zmiennej lv_time jest liczba 145320. Co to jest za liczba? :-)
ZETKA
Posty: 69
Rejestracja: czw lis 04, 2010 10:49 pm
Has thanked: 1 time
Been thanked: 71 times

Re: Ciekawostka SY-UZEIT

Post autor: ZETKA »

W tym przypadku 140000 jest traktowane jako INT i przeliczone na czas. 140000 sekund to 24h + 14.89h co daje 14:53:20.
Data i czas może być traktowana jako INT.
Jeżeli zapiszemy czas do zmiennej typu INT to otrzymamy ilość sekund od północy, jeżeli zapiszemy datę do zmiennej typu INT to otrzymamy ilość dni od 01.01.0001.
Pozdrawiam,
Krzysiek
yacol
Posty: 561
Rejestracja: śr kwie 04, 2007 4:32 pm
Lokalizacja: Poznań
Has thanked: 9 times
Been thanked: 165 times

Re: Ciekawostka SY-UZEIT

Post autor: yacol »

Dokładnie tak jak napisał Krzysiek. Taki kod:

Kod: Zaznacz cały

data date type d value 20240124.

write date.
też nie da oczekiwanego rezultatu. Oczywiście powód jest ten sam - literał 20240124 jest traktowany jako liczba całkowita bo brakuje mu apostrofów aby ABAP traktował go jako literał tekstowy (przypominam, że zarówno typ D oraz T w ABAPie są tekstowym typem danych).

Dla dociekliwych: Horst Keller z SAP AG opublikował kiedyś bardzo ciekawy artykuł "Steering Clear of the Top 10 Pitfalls Associated with ABAP Fundamental Operations and Data Types" gdzie opisuje tego typu wpadki.

https://sapinsider.org/steering-clear-o ... ata-types/

tylko trzeba mieć konto użytkownika na Sapinsiderze.
Pozdrawiam,

Jacek Witczak
http://novertio.pl
K602
Posty: 132
Rejestracja: śr sie 24, 2022 11:50 am
Has thanked: 60 times
Been thanked: 86 times

Re: Ciekawostka SY-UZEIT

Post autor: K602 »

Klasyczna koercja... takie implicite rzutowanie typów...
SAP ABAP Certified Developer
wojtas7
Posty: 1056
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 313 times

Re: Ciekawostka SY-UZEIT

Post autor: wojtas7 »

Kolego miałeś na myśli koercję magnetyczną czy koercję ferroelektryczną?

Śmiesznie, przypomina mi to Monthy Pythona i pytanie o jaskółkę coby most przejść.
K602
Posty: 132
Rejestracja: śr sie 24, 2022 11:50 am
Has thanked: 60 times
Been thanked: 86 times

Re: Ciekawostka SY-UZEIT

Post autor: K602 »

Nie rozumiem po co ta nieuzasadniona uszczypliwość, pokazująca swoją niewiedzę. Koercja jest jak najbardziej w programowaniu i dot. rzutowania typów i opisanego przypadku.

Sam termin użyty choćby tutaj: https://pl.wikipedia.org/wiki/Polimorfizm_(informatyka)

Szczegóły na google...
SAP ABAP Certified Developer
wojtas7
Posty: 1056
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 313 times

Re: Ciekawostka SY-UZEIT

Post autor: wojtas7 »

no, widać że nie rozumiesz. uzasadniona uszczypliwość czy nieuzasadniona, na pewno wiemy że nie masz poczucia humoru, i nic więcej w tym nie było.

i ogólnie fajnie by było przyjąć, że na forum pokazujemy swoją wiedzę, a nie udowadniamy innym ich niewiedzę. przemyśl to.
dominik.tylczynski
Posty: 8289
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1903 times
Been thanked: 1470 times

Re: Ciekawostka SY-UZEIT

Post autor: dominik.tylczynski »

Hej, wrzućcie proszę na luz.
K602
Posty: 132
Rejestracja: śr sie 24, 2022 11:50 am
Has thanked: 60 times
Been thanked: 86 times

Re: Ciekawostka SY-UZEIT

Post autor: K602 »

Przeczytaj proszę swoją wypowiedź i przemyśl, jak można było ją zinterpretować...

Kończę, nie róbmy tu zbędnego OT :)
SAP ABAP Certified Developer