---
title: Zengines Transformation Language
description: A reference guide to functions, syntax and use of SQL for transformation and other Data Migration activities.
---

[Skip to content](https://help.zengines.ai/en/help/zengines-transformation-language#main-content)

[![Zengines-logotype-black-rgb](https://help.zengines.ai/hs-fs/hubfs/Zengines-logotype-black-rgb.png?width=192&height=50&name=Zengines-logotype-black-rgb.png)](https://help.zengines.ai/en/help?hsLang=en)

Open main navigation

Close main navigation

 How can we help you?

- There are no suggestions because the search field is empty.

1. [Zengines Data Platform Help](https://help.zengines.ai/en/help?hsLang=en)
2. [Technical Resources](https://help.zengines.ai/en/help/technical-resources?hsLang=en)

August 4, 2026

# Zengines Transformation Language

## Our transformation language is a set of functions, following familiar SQL syntax and patterns.

Zengines custom transformations allow you to easily evaluate and modify source data to match the requirements of your target field and business needs. They are an extended, but limited subset of SQL.

 

- [Working with Strings](https://help.zengines.ai/en/help/zengines-transformation-language#working-with-strings) 
    - [CONCAT() and ||](https://help.zengines.ai/en/help/zengines-transformation-language#concat)
    - [INSTR()](https://help.zengines.ai/en/help/zengines-transformation-language#instr)
    - [LENGTH()](https://help.zengines.ai/en/help/zengines-transformation-language#length)
    - [LOWER()](https://help.zengines.ai/en/help/zengines-transformation-language#lower)
    - [LPAD()](https://help.zengines.ai/en/help/zengines-transformation-language#lpad)
    - [LTRIM()](https://help.zengines.ai/en/help/zengines-transformation-language#ltrim)
    - [REGEXP\_EXTRACT()](https://help.zengines.ai/en/help/zengines-transformation-language#regexp_extract)
    - [REGEXP\_FULL\_MATCH()](https://help.zengines.ai/en/help/zengines-transformation-language#regexp_fullmatch)
    - [REGEXP\_MATCHES()](https://help.zengines.ai/en/help/zengines-transformation-language#regexp_matches)
    - [REGEXP\_REPLACE()](https://help.zengines.ai/en/help/zengines-transformation-language#regexp_replace)
    - [REPLACE()](https://help.zengines.ai/en/help/zengines-transformation-language#replace)
    - [RPAD()](https://help.zengines.ai/en/help/zengines-transformation-language#rpad)
    - [RTRIM()](https://help.zengines.ai/en/help/zengines-transformation-language#rtrim)
    - [SPLIT\_PART()](https://help.zengines.ai/en/help/zengines-transformation-language#split_part)
    - [SUBSTR()](https://help.zengines.ai/en/help/zengines-transformation-language#substr)
    - [TRIM()](https://help.zengines.ai/en/help/zengines-transformation-language#trim)
    - [UPPER()](https://help.zengines.ai/en/help/zengines-transformation-language#upper)
- [Working with Numbers](https://help.zengines.ai/en/help/zengines-transformation-language#working-with-numbers) 
    - [ABS()](https://help.zengines.ai/en/help/zengines-transformation-language#abs)
    - [CEIL()](https://help.zengines.ai/en/help/zengines-transformation-language#ceil)
    - [FLOOR()](https://help.zengines.ai/en/help/zengines-transformation-language#floor)
    - [RANDOM()](https://help.zengines.ai/en/help/zengines-transformation-language#random)
    - [ROUND()](https://help.zengines.ai/en/help/zengines-transformation-language#round)
- [Working with Dates](https://help.zengines.ai/en/help/zengines-transformation-language#working-with-dates) 
    - [CURRENT\_DATE](https://help.zengines.ai/en/help/zengines-transformation-language#current_date)
    - [CURRENT\_TIME](https://help.zengines.ai/en/help/zengines-transformation-language#current_time)
    - [CURRENT\_TIMESTAMP](https://help.zengines.ai/en/help/zengines-transformation-language#current_timestamp)
    - [DATE\_ADD()](https://help.zengines.ai/en/help/zengines-transformation-language#date_add)
    - [DATE\_DIFF()](https://help.zengines.ai/en/help/zengines-transformation-language#date_diff)
    - [DAYNAME()](https://help.zengines.ai/en/help/zengines-transformation-language#dayname)
    - [EPOCH()](https://help.zengines.ai/en/help/zengines-transformation-language#epoch)
    - [MONTHNAME()](https://help.zengines.ai/en/help/zengines-transformation-language#monthname)
    - [QUARTER()](https://help.zengines.ai/en/help/zengines-transformation-language#quarter)
    - [STRFTIME()](https://help.zengines.ai/en/help/zengines-transformation-language#strftime)
    - [STRPTIME()](https://help.zengines.ai/en/help/zengines-transformation-language#strptime)
    - [WEEK()](https://help.zengines.ai/en/help/zengines-transformation-language#week)
    - [WEEKDAY()](https://help.zengines.ai/en/help/zengines-transformation-language#weekday)
- [Evaluating Values](https://help.zengines.ai/en/help/zengines-transformation-language#evaluating-values) 
    - [CASE](https://help.zengines.ai/en/help/zengines-transformation-language#case)
    - [COALESCE()](https://help.zengines.ai/en/help/zengines-transformation-language#coalesce)
    - [IF()](https://help.zengines.ai/en/help/zengines-transformation-language#if)
    - [IFNULL()](https://help.zengines.ai/en/help/zengines-transformation-language#ifnull)
    - [NULLIF()](https://help.zengines.ai/en/help/zengines-transformation-language#nullif)
    - [String evaluators (LIKE, BETWEEN)](https://help.zengines.ai/en/help/zengines-transformation-language#string-evaluators-like-between)
- [Other Functions](https://help.zengines.ai/en/help/zengines-transformation-language#other-functions) 
    - [CAST()](https://help.zengines.ai/en/help/zengines-transformation-language#cast)
    - [TRY\_CAST()](https://help.zengines.ai/en/help/zengines-transformation-language#try_cast)
- [Comments](https://help.zengines.ai/en/help/zengines-transformation-language#comments)
- [Window Functions](https://help.zengines.ai/en/help/zengines-transformation-language#window-functions) 
    - [ROW\_NUMBER()](https://help.zengines.ai/en/help/zengines-transformation-language#row_number)
    - [OVER()](https://help.zengines.ai/en/help/zengines-transformation-language#over)
- [Lookups and Returning Values for Other Data Sets](https://help.zengines.ai/en/help/zengines-transformation-language#lookups)
- [Field Data Types and Auto Conformity](https://help.zengines.ai/en/help/zengines-transformation-language#field-data-types)
- [Date Format Specifiers](https://help.zengines.ai/en/help/zengines-transformation-language#date-format-specifiers)

---

### [Working with Strings](https://help.zengines.ai/en/help/zengines-transformation-language#top)

#### CONCAT() and ||

The CONCAT(*expression1*, *expression2*, *expression3*,...) function adds two or more expressions (strings) together.

The shorthand version (double pipes) `||` can also be used.

**Examples:**

```
CONCAT('string1', 'string2', 'string3') 
```

```
'string1' || 'string2' || 'string3'
```

Result:

`'string1string2string3'`

 

 

#### INSTR()

The INSTR(*string*, *search*\_*string*) function returns the position of the first occurrence of a string in another string.

This function performs a case-sensitive search.

**Examples:**

```
INSTR('Hello World', 'W')
```

Result:

 

`7`

 

#### LENGTH()

The LENGTH(*string*) function returns the length of a string.

**Examples:**

```
LENGTH('Hello World')
```

Result: 

`11`

 

#### LOWER()

The LOWER(*string*) function converts a string to lower-case.

**Examples:** 

```
LOWER('Hello World')
```

Result: 

`'hello world'`

 

#### LPAD()

The LPAD(*string, count, character*) function pads the string with the character on the left until its length matches the count. Truncates the string on the right if it has more than count characters.

**Examples:**

```
LPAD('Hello', 10, 'x')
LPAD('Hello', 2, 'x')
```

Result:

`'xxxxxHello'`

 

`'He'`

 

#### LTRIM()

The LTRIM(*string, characters*) function removes any occurrences of any of the characters (optional) from the left side of the string. Characters defaults to space.

**Examples:** 

```
LTRIM(' Hello')
LTRIM(' Hello', ' H')
```

Result:

`'Hello'`

 

`'ello'`

#### REGEXP\_EXTRACT()

The REGEXP\_EXTRACT(*string*, *pattern, options*) function uses a regexp pattern, and returns the capturing group specified by optional parameter group; otherwise, returns the empty string. The group must be a constant value. If no group is given, it defaults to 0. A set of optional options can be set.

**Examples:** 

```
-- return the first instance of a letter followed by the letter b REGEXP_EXTRACT('abc', '([a-z])(b)', 1)
```

```
-- return only the digits in the entire string (same as '[0-9]+' notation)  REGEXP_EXTRACT('abc 8 code','\d+')
```

Result: 

`'a'`

 

`'8'`

 

#### REGEXP\_FULL\_MATCH()

The REGEXP\_FULL\_MATCH (*string*, *pattern, options*) function returns true if the entire string matches the regex. A set of optional options can be set.

**Examples:** 

```
REGEXP_FULL_MATCH('annabanana', '(an)*')
```

Result: 

`false`

 

#### REGEXP\_MATCHES()

The REPLACE(*string*, *pattern, options*) function returns true if string contains the regexp pattern, false otherwise. A set of optional options can be set.

**Examples:** 

```
REGEXP_MATCHES('anabanana', '(an)*')
```

```
/*  check if string contains any characters that aren't a-z (upper or lowercase), 0-9, or spaces or newlines  */REGEXP_MATCHES('ana&banana', '[^a-zA-Z0-9\s]')
```

Result: 

`true`

 

`true`

 

 

#### REGEXP\_REPLACE()

The REGEXP\_REPLACE(*string*, *pattern, options*) function uses the regexp pattern to replace the matching part with replacement. By default, only the first occurrence is replaced. A set of optional options, including the global flag g, can be set.

**Examples:** 

```
-- replace first instance found of either l or o with -  REGEXP_REPLACE('Hello world', '[lo]', '-') 
```

```
-- replace every instance found of both l and o with -REGEXP_REPLACE('Hello world', '[lo]', '-', 'g') 
```

```
-- remove any characters that are NOT digits but keep decimal point    REGEXP_REPLACE('$123,456,789.00', '[^\d.]', '', 'g')
```

Result: 

`'he-lo world'`

 

`'he--- w-r-d'`

 

`'123456789.00'`

 

 

#### REPLACE()

The REPLACE(*string*, *substring, new\_string*) function replaces all occurrences of a substring within a string, with a new substring.

**Examples:** 

```
REPLACE('Hello World', 'Hello', 'Howdy')
```

Result: 

`'Howdy world'`

 

#### RPAD()

The RPAD(*string, count, character*) function pads the string with the character on the right until its length matches the count. Truncates the string on the right if it has more than count characters.

**Examples:**

```
RPAD('Hello', 10, 'x')
```

```
RPAD('Hello', 2, 'x')
```

Result: 

`'Helloxxxxx'`

 

`'He'`

 

#### RTRIM()

The RTRIM(*string, characters*) function removes any occurrences of any of the characters (optional) from the right side of the string. Characters defaults to space.

**Examples:**

```
RTRIM('Hello ')
```

```
RTRIM('Hello ', 'o ')
```

Result:

`'Hello'`

 

`'Hell'`

 

#### SPLIT\_PART()

The SPLIT\_PART(*string, separator, index*) function splits the string along the separator and returns the data at the (1-based) index of the list. If the index is outside the bounds of the list, returns an empty string.

**Examples:** 

```
SPLIT_PART('Hello world ', ' ', 2)
```

Result: 

`'world'`

 

#### SUBSTR()

The SUBSTR(*string, start, length*) function extracts a substring from a string (starting at any position).

**Note:** The position of the first character in the string is 1.

**Note:** The position of the last character in the string is -1.

**Examples:** 

```
SUBSTR('Hello World', 1, 5)SUBSTR('Hello World', -11, 5)
```

Result: 

`'Hello'`

 

#### TRIM()

The TRIM(*string*) function removes leading and trailing spaces from a string.

**Examples:**

```
TRIM('  Hello World   ')
```

Result:

`'Hello World'`

 

#### UPPER()

The UPPER(*string*) function converts a string to upper-case.

**Examples:**

```
UPPER('Hello World')
```

Result: 

`'HELLO WORLD'`

 

### [Working with Numbers](https://help.zengines.ai/en/help/zengines-transformation-language#top)

#### ABS()

The ABS(*number*) function returns the absolute (positive) value of a number.

**Examples:** 

```
ABS(-243.5)
```

Result: 

`243.5`

 

#### CEIL()

The CEIL(*number*) function returns the smallest integer value that is bigger than or equal to a number.

**Examples:** 

```
CEIL(298.6789)
```

Result: 

`299`

 

#### FLOOR()

The FLOOR(*number*) function returns the largest integer value that is smaller than or equal to a number.

**Examples:** 

```
FLOOR(298.6789)
```

Result: 

`298`

#### RANDOM()

The RANDOM() function returns a random decimal number (no seed value - so it returns a completely random number \>= 0 and \<1)

**Examples:** 

```
RANDOM()
```

Result: 

`0.22131628033045322`

 

#### ROUND()

The ROUND(*number*, *decimals*) function rounds a number to a specified number of decimal places.

**Examples:**

```
ROUND(10.13879)
ROUND(10.13879, 2)
```

Results: 

`10`

 

`10.14`

 

### [Working with Dates](https://help.zengines.ai/en/help/zengines-transformation-language#top)

#### CURRENT\_DATE

The CURRENT\_DATE function returns the current date.

**Note:** The date is returned as "YYYY-MM-DD"

**Examples:**  

```
CURRENT_DATE
```

Results: 

`2025-03-04`

 

 

#### CURRENT\_TIME

The CURRENT\_TIME function returns the current time.

**Note:** The time is returned as "HH:MM:SS.uuuuuu±HH:MM" (includes microseconds and timezone offset)

**Examples:** 

```
CURRENT_TIME
```

Results: 

`22:32:43.439000+00:00`

 

#### CURRENT\_TIMESTAMP

The CURRENT\_TIMESTAMP function returns the current date and time in ISO format.

**Note:** The time is returned as "YYYY-MM-DD HH:MM:SS.uuuuuu±HH:MM"

**Examples:**

```
CURRENT_TIMESTAMP
```

Results: 

`2025-03-04 22:35:33.223000+00:00`

 

#### DATE\_ADD()

The DATE\_ADD(*date*, INTERVAL *value* *addunit*) function adds a time/date interval to a date and then returns the date.

**Examples:** 

```
DATE_ADD(CAST('2011-11-09 09:10:00' AS DATETIME), INTERVAL 3 MONTH)
```

Results: 

`2012-02-09 09:10:00`

 

#### DATE\_DIFF()

The DATE\_DIFF(*part, startdate, enddate*) function returns the number of date parts (including partials) specified between two date values.

**Examples:**

```
DATE_DIFF(
  'MONTH', 
  CAST('2022-04-30' AS DATE), 
  CAST('2024-11-03' AS DATE)
)
```

Results:

`31`

 

#### DAYNAME()

The DAYNAME(*date*) function returns the day of the week (English).

**Examples:** 

```
DAYNAME(
  CAST('2022-04-30 12:45:45' AS DATETIME)
)
```

Results: 

`Saturday`

 

#### EPOCH()

The EPOCH(*date*) function returns the number seconds since 1970-01-01.

**Examples:** 

```
EPOCH(
  CAST('2022-04-30 12:45:45' AS DATETIME)
)
```

Results: 

`1651322745`

 

#### MONTHNAME()

The MONTHNAME(*date*) function returns the month (English).

**Examples:** 

```
MONTHNAME(
  CAST('2022-04-30 12:45:45' AS DATETIME)
)
```

Results: 

`April`

 

#### QUARTER()

The QUARTER(*date*) function returns the numeric quarter.

**Examples:**

```
QUARTER(
  CAST('2022-04-30 12:45:45' AS DATETIME)
)
```

Results: 

`2`

 

 

#### STRFTIME()

The STRFTIME(*timestamp*, *output-format*) function converts a date to a string according to the format string.

**Examples:** 

```
DATE_DIFF(
  CAST('2011-11-09 09:10:00' AS DATETIME),
  '%A, %B %-d, %Y'
)
```

Results: 

`Saturday, November 12, 2011`

 

#### STRPTIME()

The STRPTIME(*string*, *input-format*) function converts the string `text` to timestamp according to the format string.

**Examples:**

```
STRPTIME(
  '7/16/2013', 
  '%-m/%-d/%Y'
)
```

Results: 

`2013-07-16 00:00:00`

 

#### WEEK()

The WEEK(*date*) function returns the numeric week in the year.

**Examples:**

```
WEEK(
  CAST('2022-04-30 12:45:45' AS DATETIME)
)
```

Results:

`17`

 

#### WEEKDAY()

The WEEKDAY(*date*) function returns the numeric weekday synonym (Sunday = 0, Saturday = 6).

**Examples:** 

```
WEEKDAY(
  CAST('2022-04-30 12:45:45' AS DATETIME)
)
```

Results: 

`6`

 

### [Evaluating values](https://help.zengines.ai/en/help/zengines-transformation-language#top)

#### CASE

The CASE statement goes through conditions and return a value when the first condition is met (like an IF-THEN-ELSE statement). So, once a condition is true, it will stop reading and return the result. CASE statements can be nested.

CASE  
    WHEN *condition1* THEN *result1*  
    WHEN *condition2* THEN *result2*  
    WHEN *conditionN* THEN *resultN*  
    ELSE *result*  
END

**Examples:**

```
schema.table.fieldvalue = 56CASE
  WHEN schema.table.fieldvalue > 80 THEN 'Above 80'
  WHEN schema.table.fieldvalue < 20 THEN 'Below 20'
  ELSE 'Between 20 and 80'
END
```

Results: 

`'Between 20 and 80'`

 

#### COALESCE()

The COALESCE(*value1, value2, …. value\_n*) function returns the first non-null value in a list.

**Examples:**

schema.table.fieldvalue1 = NULL

schema.table.fieldvalue2 = 'HELLO'

```
COALESCE(
  schema.table.fieldvalue1,
  schema.table.fieldvalue2,
  'No Results'
)
```

Results: 

`'HELLO'`

 

#### IF()

The IF(*condition, value\_if\_true, value\_if\_false*) function returns a value if a condition is TRUE, or another value if a condition is FALSE.

**Examples:** 

schema.table.fieldvalue = 56

```
IF(
  schema.table.fieldvalue > 50, 
  'Top 50', 
  'Bottom 50'
)
```

Results:  

`'Top 50'`

 

#### IFNULL()

The IFNULL(*expression, alternative-value*) function is a two-argument version of coalesce.

**Examples:**

schema.table.fieldvalue = NULL 

```
IFNULL(
  schema.table.fieldvalue, 
  'default_string'
)
```

Results: 

`'default_string'`

 

#### NULLIF()

The NULLIF(*expression*1, *expression*2) function returns NULL if two expressions are equal, otherwise it returns the first expression.

**Examples:**

schema.table.fieldvalue = 'Hello'

NULLIF(

```
  schema.table.fieldvalue, 
  'Hello'
)
```

Results: 

`NULL`

 

#### String evaluators

`LIKE` evaluate if a value is like another eg: `IF('Maybe' LIKE '%May%', 'TRUE', 'FALSE')`

`BETWEEN` evaluate if a number is in in a range eg: `IF(100 BETWEEN 10 AND 60, 'TRUE', 'FALSE')`

`SIMILAR TO` can be used to evaluate if parts or ranges of characters are in a string and supports regex notation, eg:

```
IF(schema.tableA.fieldA NOT SIMILAR TO '[a-zA-Z0-9.-]*','INVALID',schema.tableA.fieldA)
```

As with other forms of SQL `NOT` can be used to check if a strings is not compliant to a pattern.

For more complex evaluations use the various REGEXP functions above.

*Note, regex evaluations are more intensive than regular SQL procedures, so consider preprocessing the data.*

**Regular expressions and REGEXP options**

The underlying regular expression syntax used is the RE2 library

| Option | Description |
| --- | --- |
| `'c'` | Case-sensitive matching |
| `'i'` | Case-insensitive matching |
| `'l'` | Match literals instead of regular expression tokens |
| `'m'`, `'n'`, `'p'` | Newline sensitive matching |
| `'g'` | Global replace, only available for REGEXP\_REPLACE |
| `'s'` | Non-newline sensitive matching |

### [Other](https://help.zengines.ai/en/help/zengines-transformation-language#top)

#### CAST()

The CAST(*expression* AS *datatype(length, precision etc)*) function attempts to convert a value (of any type) into a specified datatype.

**Examples:** 

```
CAST('123.56987' AS DECIMAL(18,2))
```

Results: 

`123.57`

 

#### TRY\_CAST()

TRY\_CAST(*expression* AS *datatype(length, precision etc)*) can be used as an alternative to CAST() when the preferred behavior is not to throw an error, it will instead return `NULL` if a cast is not possible.

**Examples:** 

```
TRY_CAST('ABCDE' AS DECIMAL(18,2))
```

Results: 

`NULL`

 

### [Comments](https://help.zengines.ai/en/help/zengines-transformation-language#top)

Commenting is supported in the transformations editor.

**Examples:** 

```
/* for
multi-line
comments 
*/
-- for single line comments 
```

 

### [Window functions](https://help.zengines.ai/en/help/zengines-transformation-language#top)

These enable the use of multiple rows to calculate a value for each row, they are resource intensive.

#### ROW\_NUMBER()

Generate a `row_number` column to enumerate rows. This requires the OVER() function to specify the set of rows to enumerate

**Examples:** 

```
-- enumerate the CUSTOMER to create a sequential CUSTID 
ROW_NUMBER() OVER ()
```

 

Results:

```
CUSTOMER | STATE | CUSTID
abc      | CA    | 1
ddd      | CA    | 2
xyy      | CA    | 3
ghj      | CA    | 4
abc      | MA    | 5
xyz      | MA    | 6
abc      | WA    | 7
```

 

#### OVER()

OVER(*PARTITION BY field ORDER BY field*) defines the grouping and order of a window action. The OVER() function is required for ROW\_NUMBER but can also be used in other aggregation scenarios like, MAX, MIN, AVG, COUNT, SUM

**Examples:** 

```
-- enumerate the CUSTOMER to create a sequential CUSTID per STATE and order by CUSTOMER 
ROW_NUMBER() OVER (PARTITION BY STATE ORDER CUSTOMER)
```

Results: 

```
CUSTOMER | STATE | CUSTID
abc      | CA    | 1
ddd      | CA    | 2
ghj      | CA    | 3
xyy      | CA    | 4
abc      | MA    | 1
xyz      | MA    | 2
abc      | WA    | 1
```

 

 

### [Lookups and returning values for other data sets](https://help.zengines.ai/en/help/zengines-transformation-language#top)

This is a nested SELECT statement used to look up a value in source table using a value from a different source table(when not relying on table to table keys)

**Example** 

```
-- INPUTS - 3 tables, 3 source schema, The value you want is in SCHEMA_C.TABLE_C.field1
SCHEMA_C.TABLE_C.field1 = 'GOLD'
SCHEMA_C.TABLE_C.field2 = 'A1'
SCHEMA_A.TABLE_A.field4 = '1'
SCHEMA_B.TABLE_B.field3 = 'A'
```

 

```
(SELECT SCHEMA_C.TABLE_C.field1 FROM SCHEMA_C.TABLE_C
WHERE SCHEMA_C.TABLE_C.field2 = SCHEMA_B.TABLE_B.field3 || SCHEMA_A.TABLE_A.field4)
```

Here we concat values from `SCHEMA_A.TABLE_A` and `SCHEMA_B.TABLE_B` tables to find the correct value in the ‘reference’ table `SCHEMA_C.TABLE_C.field1`, using `SCHEMA_C.TABLE_C.field2` as a key

 

 

### [Field data types and auto conformity](https://help.zengines.ai/en/help/zengines-transformation-language#top)

Please note that where field data types are set to auto conform the preview may show a different precision or scale for the result than what may be expected, for example:

 

```
CEIL(298.6789)
-- Result for a field set to a data type of INTEGER:
299
-- Result for a field set to a data type of DECIMAL(18,2):
299.00
```

All external data system data types are converted internally to the following:

- **BLOB** - any/all binary data
- **BOOLEAN** - true/false values
- **DATE** - ISO date YYYY-MM-DD
- **DATETIME** - ISO date or timestamp YYYY-MM-DD hh:mm:ss.ffffff
- **DECIMAL** - with precision and scale set, defaults to DECIMAL(18,4)
- **INTEGER** - supports variety of byte sizes TINYINT, SMALLINT, INT, BIGINT, HUGEINT
- **STRING** - max length and fixed length (VARCHAR, CHAR - UTF8)
- **TIME**  - ISO hh:mm:ss.ffffff

### [Date Format specifiers](https://help.zengines.ai/en/help/zengines-transformation-language#top)

 

 

 

| **specifier** | **Description** | **Example** |
| --- | --- | --- |
| `%a` | Abbreviated weekday name. | Sun, Mon, … |
| `%A` | Full weekday name. | Sunday, Monday, … |
| `%b` | Abbreviated month name. | Jan, Feb, …, Dec |
| `%B` | Full month name. | January, February, … |
| `%c` | ISO date and time representation | 1992-03-02 10:30:20 |
| `%d` | Day of the month as a zero-padded decimal. | 01, 02, …, 31 |
| `%-d` | Day of the month as a decimal number. | 1, 2, …, 30 |
| `%f` | Microsecond as a decimal number, zero-padded on the left. | 000000 - 999999 |
| `%g` | Millisecond as a decimal number, zero-padded on the left. | 000 - 999 |
| `%G` | ISO 8601 year with century representing the year that contains the greater part of the ISO week (see `%V`). | 0001, 0002, …, 2013, 2014, …, 9998, 9999 |
| `%H` | Hour (24-hour clock) as a zero-padded decimal number. | 00, 01, …, 23 |
| `%-H` | Hour (24-hour clock) as a decimal number. | 0, 1, …, 23 |
| `%I` | Hour (12-hour clock) as a zero-padded decimal number. | 01, 02, …, 12 |
| `%-I` | Hour (12-hour clock) as a decimal number. | 1, 2, … 12 |
| `%j` | Day of the year as a zero-padded decimal number. | 001, 002, …, 366 |
| `%-j` | Day of the year as a decimal number. | 1, 2, …, 366 |
| `%m` | Month as a zero-padded decimal number. | 01, 02, …, 12 |
| `%-m` | Month as a decimal number. | 1, 2, …, 12 |
| `%M` | Minute as a zero-padded decimal number. | 00, 01, …, 59 |
| `%-M` | Minute as a decimal number. | 0, 1, …, 59 |
| `%n` | Nanosecond as a decimal number, zero-padded on the left. | 000000000 - 999999999 |
| `%p` | Locale's AM or PM. | AM, PM |
| `%S` | Second as a zero-padded decimal number. | 00, 01, …, 59 |
| `%-S` | Second as a decimal number. | 0, 1, …, 59 |
| `%u` | ISO 8601 weekday as a decimal number where 1 is Monday. | 1, 2, …, 7 |
| `%U` | Week number of the year. Week 01 starts on the first Sunday of the year, so there can be week 00. Note that this is not compliant with the week date standard in ISO-8601. | 00, 01, …, 53 |
| `%V` | ISO 8601 week as a decimal number with Monday as the first day of the week. Week 01 is the week containing Jan 4. | 01, …, 53 |
| `%w` | Weekday as a decimal number. | 0, 1, …, 6 |
| `%W` | Week number of the year. Week 01 starts on the first Monday of the year, so there can be week 00. Note that this is not compliant with the week date standard in ISO-8601. | 00, 01, …, 53 |
| `%x` | ISO date representation | 1992-03-02 |
| `%X` | ISO time representation | 10:30:20 |
| `%y` | Year without century as a zero-padded decimal number. | 00, 01, …, 99 |
| `%-y` | Year without century as a decimal number. | 0, 1, …, 99 |
| `%Y` | Year with century as a decimal number. | 2013, 2019 etc. |
| `%z` | Time offset from UTC in the form ±HH:MM, ±HHMM, or ±HH. | -0700 |
| `%Z` | Time zone name. | Europe/Amsterdam |
| `%%` | A literal `%` character. |  |

 

 

 

- [General](https://help.zengines.ai/en/help/general?hsLang=en#main-content)

    - [Releases](https://help.zengines.ai/en/help/general?hsLang=en#releases)
- [Data Migration](https://help.zengines.ai/en/help/data-migration?hsLang=en#main-content)

    - [Getting started](https://help.zengines.ai/en/help/data-migration?hsLang=en#getting-started)
    - [Migration projects](https://help.zengines.ai/en/help/data-migration?hsLang=en#migration-projects)
    - [Migration assets](https://help.zengines.ai/en/help/data-migration?hsLang=en#migration-assets)
    - [Sources and Targets](https://help.zengines.ai/en/help/data-migration?hsLang=en#sources-and-targets)
    - [Mapping](https://help.zengines.ai/en/help/data-migration?hsLang=en#mapping)
    - [Conversions](https://help.zengines.ai/en/help/data-migration?hsLang=en#conversions)
- [Data Lineage](https://help.zengines.ai/en/help/data-lineage?hsLang=en#main-content)

    - [Getting Started](https://help.zengines.ai/en/help/data-lineage?hsLang=en#getting-started)
    - [Language Primers](https://help.zengines.ai/en/help/data-lineage?hsLang=en#language-primers)
    - [Analysis](https://help.zengines.ai/en/help/data-lineage?hsLang=en#analysis)
    - [Zengines Assist](https://help.zengines.ai/en/help/data-lineage?hsLang=en#zengines-assist)
- [Platform Management](https://help.zengines.ai/en/help/platform-management?hsLang=en#main-content)

    - [Administration](https://help.zengines.ai/en/help/platform-management?hsLang=en#administration)
- [Technical Resources](https://help.zengines.ai/en/help/technical-resources?hsLang=en#main-content)

    - [Templates](https://help.zengines.ai/en/help/technical-resources?hsLang=en#templates)
- [Utilities](https://help.zengines.ai/en/help/utilities?hsLang=en)

[![zengines-avatar-black](https://help.zengines.ai/hs-fs/hubfs/zengines-avatar-black.png?width=40&height=40&name=zengines-avatar-black.png "zengines-avatar-black")](https://zengines.ai)

[zengines.ai](http://zengines.ai)

Copyright © 2026, Zengines