convert

This command is experimental

Definition

convert converts the string value into a numerical value.

Use one of the converting functions with convert:

The alternative option is to use evaluation commands. For example, strftime(), strptime() and tonumber() also converts string values into numerical value.

Examples

convert needs always one of the converting functions. If one of the converting functions isn’t used, an error will be shown.

Only one value can be added in a converting function. If you want to convert more than one table column, repeat the converting function.

%dpl
| makeresults
| eval value1 = "1665561109", value2 = "1665561120"
| convert ctime(value1) ctime(value2)

You can use wildcard with all converting functions.

Currently, wildcard doesn’t work in DPL. This will be fixed before the community release.

timeformat

timeformat specifies the format for the converted table column. It can be used with converting functions ctime and mktime.

If the time format hasn’t been specified, it will be shown as %m/%d/%Y %H:%M:%S.

%dpl
| makeresults
| eval epochTime = 1664955774
| convert timeformat=%d.%m.%Y ctime(epochTime) as asciiTime
example of timeformat

auto()

auto() converts automatically the table column by using the best conversion.

%dpl
| makeresults
| eval value = 3.14159265358979323846264338327950288419716939937510
| convert auto(value)
example of auto()

If the value can’t be converted, it will be skipped and won’t be converted at all.

ctime()

ctime() converts an epoch time to the ascii human-readable time. Use timeformat to specify the exact converting format.

%dpl
| makeresults
| eval epochTime = 1664955774
| convert ctime(epochTime) as asciiTime
example of ctime()

dur2sec()

dur2sec converts a duration format ([D+]HH:MM:SS) to seconds.

%dpl
| makeresults
| eval time = "10:47:48"
| convert dur2sec(time) as durationTime
example of dur2sec()

memk()

memk() converts the given value into kilobytes.

The function accepts positive numbers followed by k (kilobyte), m (megabyte) or g (gigabyte) letters. The value can be an integer or float. If there is no letter specified, the value is assumed to be kilobytes.

%dpl
| makeresults
| eval kilobyte = "19k", megabyte = "19m", gigabyte ="19g"
| convert memk(kilobyte) memk(megabyte) memk(gigabyte)
example of memk()

mktime()

mktime() converts the human-readable time into an epoch time.

%dpl
| makeresults
| eval time = "10/05/2022 07:42:54"
| convert mktime(time) as epochTime
example of mktime()

mstime()

mstime() converts the value into seconds.

%dpl
| makeresults
| eval time = "03:58.000"
| convert mstime(time) as seconds
example of mstime()

none()

none() prevents defined table columns to be converted when a wildcard is used.

%dpl
| makeresults
| eval value1 = "1665558566", value2 = "1665558586", value3 = "seagull"
| convert ctime(*) none(value3)
Currently, wildcard doesn’t work in DPL. This will be fixed before the community release.

num()

num() converts string to number. However, non-convertible values are removed.

%dpl
| makeresults
| eval value = "12"
| convert num(value)
example of num()

rmcomma()

rmcomma() omits all commas from the value.

%dpl
| makeresults
| eval sales = "100,000,000,000,000,000,000,000,000.00"
| convert rmcomma(sales)
example of rmcomma()

rmunit()

rmunit() omits the first non-number character and other characters after it.

%dpl
| makeresults
| eval weight = "1000.00kg"
| convert rmunit(weight)

rmunit() omits everything after the first non-number character. This includes commas as well.

Currently, rmunit() omits everything after the first non-number character, including periods as well. This will be fixed before the community release.

Further Reading