Files
gh-secondsky-sap-skills-ski…/references/dtl-functions.md
2025-11-30 08:55:25 +08:00

10 KiB

Data Transformation Language (DTL) Functions Reference

Complete reference for Data Transformation Language functions in SAP Data Intelligence.

Table of Contents

  1. Overview
  2. String Functions
  3. Numeric Functions
  4. Date and Time Functions
  5. Data Type Conversion Functions
  6. Miscellaneous Functions

Overview

Data Transformation Language (DTL) provides SQL-like functions for data processing in:

  • Data Transform operator
  • Data preparation tools
  • Structured data operators

Syntax Pattern:

FUNCTION_NAME(argument1, argument2, ...)

String Functions

Functions for extracting, manipulating, and returning string information.

CONCAT

Concatenates two or more strings.

CONCAT(string1, string2 [, string3, ...])

Example:

CONCAT('Hello', ' ', 'World') -- Returns: 'Hello World'

SUBSTRING

Extracts a portion of a string.

SUBSTRING(string, start_position [, length])

Example:

SUBSTRING('SAP Data Intelligence', 5, 4) -- Returns: 'Data'

SUBSTRAFTER

Returns substring after the first occurrence of a delimiter.

SUBSTRAFTER(string, delimiter)

Example:

SUBSTRAFTER('user@domain.com', '@') -- Returns: 'domain.com'

SUBSTRBEFORE

Returns substring before the first occurrence of a delimiter.

SUBSTRBEFORE(string, delimiter)

Example:

SUBSTRBEFORE('user@domain.com', '@') -- Returns: 'user'

LEFT

Returns leftmost characters of a string.

LEFT(string, length)

Example:

LEFT('SAP Data', 3) -- Returns: 'SAP'

RIGHT

Returns rightmost characters of a string.

RIGHT(string, length)

Example:

RIGHT('SAP Data', 4) -- Returns: 'Data'

LENGTH

Returns the length of a string.

LENGTH(string)

Example:

LENGTH('SAP') -- Returns: 3

UPPER / UCASE

Converts string to uppercase.

UPPER(string)
UCASE(string)

Example:

UPPER('sap data') -- Returns: 'SAP DATA'

LOWER / LCASE

Converts string to lowercase.

LOWER(string)
LCASE(string)

Example:

LOWER('SAP DATA') -- Returns: 'sap data'

TRIM

Removes leading and trailing spaces.

TRIM(string)

Example:

TRIM('  SAP  ') -- Returns: 'SAP'

LTRIM

Removes leading spaces.

LTRIM(string)

RTRIM

Removes trailing spaces.

RTRIM(string)

LPAD

Pads string on the left to specified length.

LPAD(string, length [, pad_string])

Example:

LPAD('42', 5, '0') -- Returns: '00042'

RPAD

Pads string on the right to specified length.

RPAD(string, length [, pad_string])

Example:

RPAD('SAP', 6, 'X') -- Returns: 'SAPXXX'

REPLACE

Replaces occurrences of a substring.

REPLACE(string, search_string, replace_string)

Example:

REPLACE('SAP HANA', 'HANA', 'DI') -- Returns: 'SAP DI'

LOCATE

Returns position of substring in string.

LOCATE(string, substring [, start_position])

Example:

LOCATE('SAP Data Intelligence', 'Data') -- Returns: 5

ASCII

Returns ASCII code of first character.

ASCII(string)

Example:

ASCII('A') -- Returns: 65

CHAR

Returns character for ASCII code.

CHAR(integer)

Example:

CHAR(65) -- Returns: 'A'

Numeric Functions

Functions for mathematical operations on numeric data.

ABS

Returns absolute value.

ABS(number)

Example:

ABS(-42) -- Returns: 42

CEIL

Rounds up to nearest integer.

CEIL(number)

Example:

CEIL(4.2) -- Returns: 5

FLOOR

Rounds down to nearest integer.

FLOOR(number)

Example:

FLOOR(4.8) -- Returns: 4

ROUND

Rounds to specified decimal places.

ROUND(number [, decimal_places])

Example:

ROUND(3.14159, 2) -- Returns: 3.14

MOD

Returns remainder of division.

MOD(dividend, divisor)

Example:

MOD(10, 3) -- Returns: 1

POWER

Returns base raised to exponent.

POWER(base, exponent)

Example:

POWER(2, 3) -- Returns: 8

SQRT

Returns square root.

SQRT(number)

Example:

SQRT(16) -- Returns: 4

EXP

Returns e raised to power.

EXP(number)

Example:

EXP(1) -- Returns: 2.71828...

LN

Returns natural logarithm.

LN(number)

Example:

LN(2.71828) -- Returns: ~1

LOG

Returns logarithm with specified base.

LOG(base, number)

Example:

LOG(10, 100) -- Returns: 2

SIGN

Returns sign of number (-1, 0, or 1).

SIGN(number)

Example:

SIGN(-42) -- Returns: -1

UMINUS

Returns negation of number.

UMINUS(number)

Example:

UMINUS(42) -- Returns: -42

RAND

Returns random number between 0 and 1.

RAND()

Date and Time Functions

Functions for date and time operations.

CURRENT_UTCDATE

Returns current UTC date.

CURRENT_UTCDATE()

CURRENT_UTCTIME

Returns current UTC time.

CURRENT_UTCTIME()

CURRENT_UTCTIMESTAMP

Returns current UTC timestamp.

CURRENT_UTCTIMESTAMP()

ADD_DAYS

Adds days to a date.

ADD_DAYS(date, days)

Example:

ADD_DAYS('2025-01-01', 30) -- Returns: '2025-01-31'

ADD_MONTHS

Adds months to a date.

ADD_MONTHS(date, months)

Example:

ADD_MONTHS('2025-01-15', 2) -- Returns: '2025-03-15'

ADD_YEARS

Adds years to a date.

ADD_YEARS(date, years)

ADD_SECONDS

Adds seconds to a timestamp.

ADD_SECONDS(timestamp, seconds)

DAYS_BETWEEN

Returns days between two dates.

DAYS_BETWEEN(date1, date2)

Example:

DAYS_BETWEEN('2025-01-01', '2025-01-31') -- Returns: 30

MONTHS_BETWEEN

Returns months between two dates.

MONTHS_BETWEEN(date1, date2)

YEARS_BETWEEN

Returns years between two dates.

YEARS_BETWEEN(date1, date2)

SECONDS_BETWEEN

Returns seconds between two timestamps.

SECONDS_BETWEEN(timestamp1, timestamp2)

EXTRACT

Extracts date/time component.

EXTRACT(component FROM date_or_timestamp)

Components: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

Example:

EXTRACT(YEAR FROM '2025-06-15') -- Returns: 2025

YEAR

Returns year from date.

YEAR(date)

MONTH

Returns month from date (1-12).

MONTH(date)

DAYOFMONTH

Returns day of month (1-31).

DAYOFMONTH(date)

DAYOFYEAR

Returns day of year (1-366).

DAYOFYEAR(date)

WEEK

Returns week number (1-53).

WEEK(date)

ISOWEEK

Returns ISO week number.

ISOWEEK(date)

QUARTER

Returns quarter (1-4).

QUARTER(date)

HOUR

Returns hour (0-23).

HOUR(timestamp)

MINUTE

Returns minute (0-59).

MINUTE(timestamp)

SECOND

Returns second (0-59).

SECOND(timestamp)

DAYNAME

Returns day name.

DAYNAME(date)

Example:

DAYNAME('2025-01-01') -- Returns: 'Wednesday'

MONTHNAME

Returns month name.

MONTHNAME(date)

LAST_DAY

Returns last day of month.

LAST_DAY(date)

Example:

LAST_DAY('2025-02-15') -- Returns: '2025-02-28'

NEXT_DAY

Returns next occurrence of weekday.

NEXT_DAY(date, weekday)

Data Type Conversion Functions

Functions for converting between data types.

TO_STRING

Converts to string.

TO_STRING(value [, format])

Example:

TO_STRING(12345) -- Returns: '12345'
TO_STRING(3.14, '0.00') -- Returns: '3.14'

TO_INTEGER

Converts to integer.

TO_INTEGER(value)

Example:

TO_INTEGER('42') -- Returns: 42
TO_INTEGER(3.7) -- Returns: 3

TO_DECIMAL

Converts to decimal.

TO_DECIMAL(value [, precision, scale])

Example:

TO_DECIMAL('123.45', 10, 2) -- Returns: 123.45

TO_FLOATING

Converts to floating point.

TO_FLOATING(value)

TO_DATE

Converts to date.

TO_DATE(string [, format])

Example:

TO_DATE('2025-01-15', 'YYYY-MM-DD')
TO_DATE('15/01/2025', 'DD/MM/YYYY')

TO_TIME

Converts to time.

TO_TIME(string [, format])

Example:

TO_TIME('14:30:00', 'HH24:MI:SS')

TO_DATETIME

Converts to datetime/timestamp.

TO_DATETIME(string [, format])

Miscellaneous Functions

CASE

Conditional expression.

CASE
  WHEN condition1 THEN result1
  WHEN condition2 THEN result2
  ELSE default_result
END

Example:

CASE
  WHEN status = 'A' THEN 'Active'
  WHEN status = 'I' THEN 'Inactive'
  ELSE 'Unknown'
END

COALESCE

Returns first non-null value.

COALESCE(value1, value2, ...)

Example:

COALESCE(phone, mobile, 'No number') -- Returns first non-null

IFNULL

Returns second value if first is null.

IFNULL(value, replacement)

Example:

IFNULL(discount, 0) -- Returns 0 if discount is null

NULLIF

Returns null if values are equal.

NULLIF(value1, value2)

Example:

NULLIF(quantity, 0) -- Returns null if quantity is 0

GREATEST

Returns largest value.

GREATEST(value1, value2, ...)

Example:

GREATEST(10, 20, 15) -- Returns: 20

LEAST

Returns smallest value.

LEAST(value1, value2, ...)

Example:

LEAST(10, 20, 15) -- Returns: 10

MAP

Maps value to another value.

MAP(input, value1, result1 [, value2, result2, ...] [, default])

Example:

MAP(status, 'A', 'Active', 'I', 'Inactive', 'Unknown')


Last Updated: 2025-11-22