SD_DATETIME_DIFFERENCE
Calcula la diferencia en días y horas entre dos fechas con hora.
- Transacción
SE37- Grupo
- Fechas
- Actualizado
- 21 de octubre de 2026
Para qué sirve
SD_DATETIME_DIFFERENCE recibe dos pares de fecha y hora y devuelve la diferencia en días y en horas, además de indicar cuál de los dos es el más temprano.
En ABAP moderno, para diferencias exactas en segundos se usan marcas de tiempo y CL_ABAP_TSTMP=>SUBTRACT.
Parámetros
Importing
Lo que recibe la función. En CALL FUNCTION se pasan tras EXPORTING.
| Parámetro | Tipo | Descripción |
|---|---|---|
DATE1Obligatorio | D | Primera fecha. |
TIME1Obligatorio | T | Primera hora. |
DATE2Obligatorio | D | Segunda fecha. |
TIME2Obligatorio | T | Segunda hora. |
Exporting
Lo que devuelve. En CALL FUNCTION se recogen tras IMPORTING.
| Parámetro | Tipo | Descripción |
|---|---|---|
DATEDIFF | — | Diferencia en días. |
TIMEDIFF | — | Diferencia en horas. |
EARLIEST | — | Indica qué fecha es la más temprana. |
Excepciones
Errores que devuelve en sy-subrc, en el bloque EXCEPTIONS.
| Excepción | Cuándo se produce |
|---|---|
INVALID_DATETIME | Alguna fecha u hora no es válida. |
Ejemplo
DATA: lv_dias TYPE p,
lv_horas TYPE p DECIMALS 2.
CALL FUNCTION 'SD_DATETIME_DIFFERENCE'
EXPORTING
date1 = '20261020'
time1 = '080000'
date2 = '20261021'
time2 = '143000'
IMPORTING
datediff = lv_dias
timediff = lv_horas
EXCEPTIONS
invalid_datetime = 1
OTHERS = 2.Hoy lo harías así: marcas de tiempo
DATA: lv_ts1 TYPE timestamp,
lv_ts2 TYPE timestamp.
CONVERT DATE '20261020' TIME '080000' INTO TIME STAMP lv_ts1 TIME ZONE 'UTC'.
CONVERT DATE '20261021' TIME '143000' INTO TIME STAMP lv_ts2 TIME ZONE 'UTC'.
DATA(lv_segundos) = cl_abap_tstmp=>subtract( tstmp1 = lv_ts2 tstmp2 = lv_ts1 ).
DATA(lv_horas) = lv_segundos / 3600.Errores y excepciones habituales
- INVALID_DATETIME: alguna fecha u hora está vacía o no existe.
Relacionadas
Funciones relacionadas
DAYS_BETWEEN_TWO_DATESC14B_ADD_TIMEEND_TIME_DETERMINE
Más en Fechas
CONVERSION_EXIT_LDATE_OUTPUTADD_TIME_TO_DATERP_CALC_DATE_IN_INTERVALCALCULATE_DATECOMPUTE_YEARS_BETWEEN_DATESCONVERSION_EXIT_PDATE_INPUTCONVERSION_EXIT_PDATE_OUTPUTCONVERSION_EXIT_SDATE_OUTPUTCONVERT_DATE_TO_EXTERNALCONVERT_DATE_TO_INTERNALDATE_COMPUTE_DAYDAY_IN_WEEK
Transacciones y tablas
¿Dudas con esta función?
Pregunta en el foro de abap.es: la comunidad lleva años resolviendo dudas de ABAP en español.
Actualizado: 21 de octubre de 2026