From cb2944350fc36ec49488a7be2a34dc3523972c96 Mon Sep 17 00:00:00 2001 From: Raju Udava <86527202+dstala@users.noreply.github.com> Date: Wed, 29 Nov 2023 20:51:56 +0530 Subject: [PATCH] docs: formula expansion as md sections Signed-off-by: Raju Udava <86527202+dstala@users.noreply.github.com> --- .../060.formula/020.numeric-functions.md | 384 ++++++++++++++++-- .../060.formula/030.string-functions.md | 236 +++++++++-- .../060.formula/040.date-functions.md | 101 ++++- .../050.conditional-expressions.md | 75 +++- 4 files changed, 721 insertions(+), 75 deletions(-) diff --git a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/020.numeric-functions.md b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/020.numeric-functions.md index b4d49cad0f..3debfe493a 100644 --- a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/020.numeric-functions.md +++ b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/020.numeric-functions.md @@ -5,36 +5,362 @@ tags: ['Fields', 'Field types', 'Formula'] keywords: ['Fields', 'Field types', 'Formula', 'Create formula field', 'Numeric functions'] --- +This cheat sheet provides a quick reference guide for various mathematical functions commonly used in data analysis and programming. Each function is accompanied by its syntax, a sample usage, and a brief description. -### Numeric functions - -| Name | Syntax | Sample | Output | -|-------------|----------------------------|----------------------------------------|-------------------------------------------------------------------------------------------------------------| -| **ABS** | `ABS(value)` | `ABS({field})` | Absolute value of the input parameter | -| **ADD** | `ADD(value1,[value2,...])` | `ADD({field1}, {field2})` | Sum of input parameters | -| **AVG** | `AVG(value1,[value2,...])` | `AVG({field1}, {field2})` | Average of input parameters | -| **CEILING** | `CEILING(value)` | `CEILING({field})` | Rounded next largest integer value of input parameter | -| **EXP** | `EXP(value)` | `EXP({field})` | Exponential value of input parameter (`e^x`) | -| **FLOOR** | `FLOOR(value)` | `FLOOR({field})` | Rounded largest integer less than or equal to input parameter | -| **INT** | `INT(value)` | `INT({field})` | Integer value of input parameter | -| **LOG** | `LOG([base], value)` | `LOG(10, {field})` | Logarithm of input parameter to the base (default = e) specified | -| **MAX** | `MAX(value1,[value2,...])` | `MAX({field1}, {field2}, {field3})` | Maximum value amongst input parameters | -| **MIN** | `MIN(value1,[value2,...])` | `MIN({field1}, {field2}, {field3})` | Minimum value amongst input parameters | -| **MOD** | `MOD(value1, value2)` | `MOD({field}, 2)` | Remainder after integer division of input parameters | -| **POWER** | `POWER(base, exponent)` | `POWER({field}, 3)` | `base` to the `exponent` power, as in `base ^ exponent` | -| **ROUND** | `ROUND(value, precision)` | `ROUND({field}, 3)` | Round input `value` to decimal place specified by `precision` (Nearest integer if `precision` not provided) | -| **SQRT** | `SQRT(value)` | `SQRT({field})` | Square root of the input parameter | -| **COUNT** | `COUNT(value1,[value2,...])`| `COUNT({field1},{field2},{field3})` | Count the number of arguments that are numbers | -| **COUNTA** | `COUNTA(value1,[value2,...])`| `COUNTA({field1},{field2},{field3})`| Counts the number of non-empty arguments | -| **COUNTALL** | `COUNTALL(value1,[value2,...])`|`COUNTALL({field1},{field2},{field3})`| Counts the number of arguments | -| **EVEN** | `EVEN(value)` | `EVEN({field})` | Returns the nearest even integer that is greater than or equal to the specified value | -| **ODD** | `ODD(value)` | `ODD({field})` | Returns the nearest odd integer that is greater than or equal to the specified value | -| **VALUE** | `VALUE(value)` | `VALUE({field})` | Extract the numeric value from a string, if `%` or `-` is present, it will handle it accordingly and return the numeric value| -| **ROUNDDOWN** | `ROUNDDOWN(value, [precision])` | `ROUNDDOWN({field}, 2)` | Round down the value after the decimal point to the number of decimal places given by "precision"(default is 0) | -| **ROUNDUP** | `ROUNDUP(value, [precision])` | `ROUNDUP({field}, 2)` | Round up the value after the decimal point to the number of decimal places given by "precision"(default is 0) | - - -## Related Articles +------------ + +## ABS +The ABS function returns the distance of the number from zero on the number line, ensuring that the result is non-negative. + +#### Syntax +```plaintext +ABS(number) +``` + +#### Sample +```plaintext +ABS(10.35) => 10.35 +ABS(-15) => 15 +``` + +------------ + +## ADD +The ADD function computes the total of multiple numbers provided as arguments. + +#### Syntax +```plaintext +ADD(number1, [number2, ...]) +``` + +#### Sample +```plaintext +ADD(5, 7) => 12 +ADD(-10, 15, 20) => 25 +``` + +------------ + +## AVG +The AVG function calculates the mean of a set of numerical values. + +#### Syntax +```plaintext +AVG(number1, [number2, ...]) +``` + +#### Sample +```plaintext +AVG(10, 20, 30) => 20 +AVG(-5, 5) => 0 +``` + +------------ + +## CEILING +The CEILING function rounds a number up to the nearest integer greater than or equal to the input. + +#### Syntax +```plaintext +CEILING(number) +``` + +#### Sample +```plaintext +CEILING(8.75) => 9 +CEILING(-15.25) => -15 +``` +------------ + +## COUNT +The COUNT function calculates the number of numeric arguments provided. + +#### Syntax +```plaintext +COUNT(number1, [number2, ...]) +``` + +#### Sample +```plaintext +COUNT(1, 2, "abc", 3) => 3 +COUNT(-5, 0, "$abc", 5) => 3 +``` + +------------ + +## COUNTA +The COUNTA function counts the number of non-empty arguments provided. + +#### Syntax +```plaintext +COUNTA(value1, [value2, ...]) +``` + +#### Sample +```plaintext +COUNTA(1, "", "text") => 2 +COUNTA("one", "two", "three") => 3 +``` + +------------ + +## COUNTALL +The COUNTALL function calculates the total number of arguments, both numeric and non-numeric. + +#### Syntax +```plaintext +COUNTALL(value1, [value2, ...]) +``` + +#### Sample +```plaintext +COUNTALL(1, "", "text") => 3 +COUNTALL("one", "two", "three") => 3 +``` + +------------ + +## EVEN +The EVEN function rounds a number up to the nearest even integer. + +#### Syntax +```plaintext +EVEN(number) +``` + +#### Sample +```plaintext +EVEN(7) => 8 +EVEN(-5) => -6 +``` + +------------ + +## EXP +The EXP function returns 'e' raised to the power of a given number. + +#### Syntax +```plaintext +EXP(number) +``` + +#### Sample +```plaintext +EXP(2) => 7.389 +EXP(-1) => 0.368 +``` + +------------ + +## FLOOR +The FLOOR function rounds a number down to the nearest integer. + +#### Syntax +```plaintext +FLOOR(number) +``` + +#### Sample +```plaintext +FLOOR(8.75) => 8 +FLOOR(-15.25) => -16 +``` + +------------ + +## INT +The INT function truncates the decimal part, returning the integer portion of a number. + +#### Syntax +```plaintext +INT(number) +``` + +#### Sample +```plaintext +INT(8.75) => 8 +INT(-15.25) => -15 +``` + +------------ + +## LOG +The LOG function computes the logarithm of a number to a specified base. (default = e). + +#### Syntax +```plaintext +LOG([base], number) +``` + +#### Sample +```plaintext +LOG(10, 100) => 2 +LOG(2, 8) => 3 +``` + +------------ + +## MAX +The MAX function identifies the highest value from a set of numbers. + +#### Syntax +```plaintext +MAX(number1, [number2, ...]) +``` + +#### Sample +```plaintext +MAX(5, 10, 3) => 10 +MAX(-10, -5, -20) => -5 +``` + +------------ + +## MIN +The MIN function identifies the lowest value from a set of numbers. + +#### Syntax +```plaintext +MIN(number1, [number2, ...]) +``` + +#### Sample +```plaintext +MIN(5, 10, 3) => 3 +MIN(-10, -5, -20) => -20 +``` + +------------ + +## MOD +The MOD function calculates the remainder when dividing (integer division) one number by another. + +#### Syntax +```plaintext +MOD(number1, number2) +``` + +#### Sample +```plaintext +MOD(10, 3) => 1 +MOD(-15, 4) => -3 +``` + +------------ + +## ODD +The ODD function rounds a number up to the nearest odd integer greater than or equal to the specified value. + +#### Syntax +```plaintext +ODD(number) +``` + +#### Sample +```plaintext +ODD(7) => 7 +ODD(-5) => -5 +``` + +------------ + +## POWER +The POWER function raises a given base to a specified exponent. + +#### Syntax +```plaintext +POWER(base, exponent) +``` + +#### Sample +```plaintext +POWER(2, 3) => 8 +POWER(10, -2) => 0.01 +``` + +------------ + +## ROUND +The ROUND function is used to round a number to a specified number of decimal places (precision). Default value for precision is 0. + +#### Syntax +```plaintext +ROUND(number, [precision]) +``` + +#### Sample +```plaintext +ROUND(8.765, 2) => 8.77 +ROUND(-15.123, 1) => -15.1 +``` + +------------ + +## ROUNDDOWN +The ROUNDDOWN function rounds a number down to a specified number of decimal places (precision). Default value for precision is 0. + +#### Syntax +```plaintext +ROUNDDOWN(number, [precision]) +``` + +#### Sample +```plaintext +ROUNDDOWN(8.765, 2) => 8.76 +ROUNDDOWN(-15.123, 1) => -15.2 +``` + +------------ + +## ROUNDUP +The ROUNDUP function rounds a number up to a specified number of decimal places (precision). Default value for precision is 0. + +#### Syntax +```plaintext +ROUNDUP(number, [precision]) +``` + +#### Sample +```plaintext +ROUNDUP(8.765, 2) => 8.77 +ROUNDUP(-15.123, 1) => -15.1 +``` + +------------ + +## SQRT +The SQRT function calculates the square root of a given number. + +#### Syntax +```plaintext +SQRT(number) +``` + +#### Sample +```plaintext +SQRT(25) => 5 +SQRT(2) => 1.414 +``` + +------------ + +## VALUE +The VALUE function is used to extract the numeric value from a string (after handling `%` or `-` accordingly). + +#### Syntax +```plaintext +VALUE(text) +``` + +#### Sample +```plaintext +VALUE("123") => 123 +VALUE("-45.67") => -45.67 +``` + +------------ + +### Related Articles - [Numeric and Logical Operators](015.operators.md) - [String Functions](030.string-functions.md) - [Date Functions](040.date-functions.md) diff --git a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/030.string-functions.md b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/030.string-functions.md index 9b09898016..fe018fe703 100644 --- a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/030.string-functions.md +++ b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/030.string-functions.md @@ -5,31 +5,219 @@ tags: ['Fields', 'Field types', 'Formula'] keywords: ['Fields', 'Field types', 'Formula', 'Create formula field', 'String functions'] --- +This cheat sheet provides a quick reference guide for various string based functions commonly used in data analysis and programming. Each function is accompanied by its syntax, a sample usage, and a brief description. -### String functions - -| Name | Syntax | Sample | Output | -|-------------|----------------------------------|-------------------------------------|---------------------------------------------------------------------------| -| **CONCAT** | `CONCAT(str1, [str2,...])` | `CONCAT({field1}, ' ', {field2})` | Concatenated string of input parameters | -| **LEFT** | `LEFT(str1, n)` | `LEFT({field}, 3)` | `n` characters from the beginning of input parameter | -| **LEN** | `LEN(str)` | `LEN({field})` | Input parameter character length | -| **LOWER** | `LOWER(str)` | `LOWER({field})` | Lower case converted string of input parameter | -| **MID** | `MID(str, position, [count])` | `MID({field}, 3, 2)` | Alias for `SUBSTR` | -| **REPEAT** | `REPEAT(str, count)` | `REPEAT({field}, 2)` | Specified copies of the input parameter string concatenated together | -| **REPLACE** | `REPLACE(str, srchStr, rplcStr)` | `REPLACE({field}, 'int', 'num')` | String, after replacing all occurrences of `srchStr` with `rplcStr` | -| **RIGHT** | `RIGHT(str, n)` | `RIGHT({field}, 3)` | `n` characters from the end of input parameter | -| **SEARCH** | `SEARCH(str, srchStr)` | `SEARCH({field}, 'str')` | Index of `srchStr` specified if found, 0 otherwise | -| **SUBSTR** | `SUBTR(str, position, [count])` | `SUBSTR({field}, 3, 2)` | Substring of length 'count' of input string, from the postition specified | -| **TRIM** | `TRIM(str)` | `TRIM({field})` | Remove trailing and leading whitespaces from input parameter | -| **UPPER** | `UPPER(str)` | `UPPER({field})` | Upper case converted string of input parameter | -| **URL** | `URL(str)` | `URL({field})` | Convert to a hyperlink if it is a valid URL | -| **REGEX_MATCH** | `REGEX_MATCH(str, pattern)` | `REGEX_MATCH({field}, 'a.*')` | Returns 1 if the input text matches a regular expression or 0 if it does not | -| **REGEX_EXTRACT** | `REGEX_EXTRACT(str, pattern)` | `REGEX_MATCH({field}, 'a.*')` | Returns the first match of a regular expression in a string | -| **REGEX_REPLACE** | `REGEX_REPLACE(str, pattern, replacer)` | `REGEX_MATCH({field}, 'a.*', '---')` | Replaces all matches of a regular expression in a string with a replacement string | - - - -## Related Articles +## CONCAT +The CONCAT function concatenates one or more strings into a single string. + +#### Syntax +```plaintext +CONCAT(str1, [str2,...]) +``` + +#### Sample +```plaintext +CONCAT('John', ' ', 'Doe') => 'John Doe' +``` + +## LEFT +The LEFT function retrieves the first 'n' characters from the beginning of the input string. + +#### Syntax +```plaintext +LEFT(str1, n) +``` + +#### Sample +```plaintext +LEFT('123-456-7890', 3) => '123' +``` + +## LEN +The LEN function calculates and returns the total number of characters present in the provided string. + +#### Syntax +```plaintext +LEN(str) +``` + +#### Sample +```plaintext +LEN('Product Description') => 18 +``` + +## LOWER +The LOWER function transforms all characters in the input string to lowercase + +#### Syntax +```plaintext +LOWER(str) +``` + +#### Sample +```plaintext +LOWER('User INPUT') => 'user input' +``` + +## MID +The MID function retrieves a substring from the input string starting at the specified position and extending for the specified count of characters. + +#### Syntax +```plaintext +MID(str, position, [count]) +``` + +#### Sample +```plaintext +MID('This is a sentence', 5, 3) => 'is ' +``` + +## REGEX_EXTRACT +The REGEX_EXTRACT function searches the input string for the first occurrence of the specified regular expression pattern and returns the matched substring. + +#### Syntax +```plaintext +REGEX_EXTRACT(str, pattern) +``` + +#### Sample +```plaintext +REGEX_EXTRACT('Error: Something went wrong', 'Error: (.*)') => 'Something went wrong' +``` + +## REGEX_MATCH +The REGEX_MATCH function evaluates whether the input string matches the specified regular expression pattern, returning 1 if there is a match and 0 if there is no match. + +#### Syntax +```plaintext +REGEX_MATCH(str, pattern) +``` + +#### Sample +```plaintext +REGEX_MATCH('123-45-6789', '\d{3}-\d{2}-\d{4}') => 1 +``` + +## REGEX_REPLACE +The REGEX_REPLACE function identifies all occurrences of the specified regular expression pattern in the input string and substitutes them with the provided replacement string. + +#### Syntax +```plaintext +REGEX_REPLACE(str, pattern, replacer) +``` + + +#### Sample +```plaintext +REGEX_REPLACE('Replace all bugs', 'bug', 'feature') => 'Replace all features' +``` + +## REPEAT +The REPEAT function duplicates the provided string the specified number of times, facilitating the creation of repeated patterns or sequences. + +#### Syntax +```plaintext +REPEAT(str, count) +``` + +#### Sample +```plaintext +REPEAT('😃', 3) => '😃😃😃' +``` + +## REPLACE +The REPLACE function identifies all instances of a particular substring within the given string and substitutes them with another specified substring. + +#### Syntax +```plaintext +REPLACE(str, srchStr, rplcStr) +``` + +#### Sample +```plaintext +REPLACE('Replace old text', 'old', 'new') => 'Replace new text' +``` + +## RIGHT +The RIGHT function retrieves the last 'n' characters from the end of the input string, allowing you to extract a substring starting from the right. + +#### Syntax +```plaintext +RIGHT(str, n) +``` + +#### Sample +```plaintext +RIGHT('file_name.txt', 3) => 'txt' +``` + +## SEARCH +The SEARCH function identifies the position of the specified substring within the input string, returning the index if found, and 0 otherwise. + +#### Syntax +```plaintext +SEARCH(str, srchStr) +``` + +#### Sample +```plaintext +SEARCH('user@example.com', '@') => 4 +``` + +## SUBSTR +The SUBSTR function extracts a substring from the input string, starting at the specified position and optionally extending for the specified count of characters. + +#### Syntax +```plaintext +SUBSTR(str, position, [count]) +``` + +#### Sample +```plaintext +SUBSTR('Extract this text', 8, 4) => 'this' +``` + +## TRIM +The TRIM function eliminates any leading or trailing whitespaces from the input string. + +#### Syntax +```plaintext +TRIM(str) +``` + +#### Sample +```plaintext +TRIM(' Trim this ') => 'Trim this' +``` + +## UPPER +The UPPER function transforms all characters in the input string to uppercase. + +#### Syntax +```plaintext +UPPER(str) +``` + +#### Sample +```plaintext +UPPER('title') => 'TITLE' +``` + +## URL +The URL function checks if the input string is a valid URL and converts it into a hyperlink + +#### Syntax +```plaintext +URL(str) +``` + +#### Sample +```plaintext +URL('https://www.example.com') => 'https://www.example.com' +``` + + +#### Related Articles - [Numeric and Logical Operators](015.operators.md) - [Numeric Functions](020.numeric-functions.md) - [Date Functions](040.date-functions.md) diff --git a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/040.date-functions.md b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/040.date-functions.md index 9c2b9211db..2d3c9e1215 100644 --- a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/040.date-functions.md +++ b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/040.date-functions.md @@ -5,22 +5,95 @@ tags: ['Fields', 'Field types', 'Formula', 'Date & Time'] keywords: ['Fields', 'Field types', 'Formula', 'Date & Time', 'Create formula field', 'Date functions'] --- +This cheat sheet provides a quick reference guide for various date functions commonly used in data analysis and programming. Each function is accompanied by its syntax, a sample usage, and a brief description. -| Name | Syntax | Sample | Output | Remark | -|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **NOW** | `NOW()` | `NOW()` | 2022-05-19 17:20:43 | Returns the current time and day | -| | `IF(NOW() < {DATE_COL}`, "true", "false")` | `IF(NOW() < date, "true", "false")` | If current date is less than `{DATE_COL}`, it returns true. Otherwise, it returns false. | DateTime fields and negative values are supported. | -| **DATEADD** | `DATEADD(date \| datetime, value, ["day" \| "week" \| "month" \| "year"])` | `DATEADD(date, 1, 'day')` | Supposing `{DATE_COL}` is 2022-03-14. The result is 2022-03-15. | DateTime fields and negative values are supported. Example: `DATEADD(DATE_TIME_COL, -1, 'day')` | -| | | `DATEADD(date, 1, 'week')` | Supposing `{DATE_COL}` is 2022-03-14 03:14. The result is 2022-03-21 03:14. | DateTime fields and negative values are supported. Example: `DATEADD(DATE_TIME_COL, -1, 'week')` | -| | | `DATEADD(date, 1, 'month')` | Supposing `{DATE_COL}` is 2022-03-14 03:14. The result is 2022-04-14 03:14. | DateTime fields and negative values are supported. Example: `DATEADD(DATE_TIME_COL, -1, 'month')` | -| | | `DATEADD(date, 1, 'year')` | Supposing `{DATE_COL}` is 2022-03-14 03:14. The result is 2023-03-14 03:14. | DateTime fields and negative values are supported. Example: `DATEADD(DATE_TIME_COL, -1, 'year')` | -| | | `IF(NOW() < DATEADD(date,10,'day'), "true", "false")` | If the current date is less than `{DATE_COL}` plus 10 days, it returns true. Otherwise, it returns false. | DateTime fields and negative values are supported. | -| | | `IF(NOW() < DATEADD(date,10,'day'), "true", "false")` | If the current date is less than `{DATE_COL}` plus 10 days, it returns true. Otherwise, it returns false. | DateTime fields and negative values are supported. | -| **DATETIME_DIFF** | `DATETIME_DIFF(date, date, ["milliseconds" \| "ms" \| "seconds" \| "s" \| "minutes" \| "m" \| "hours" \| "h" \| "days" \| "d" \| "weeks" \| "w" \| "months" \| "M" \| "quarters" \| "Q" \| "years" \| "y"])` | `DATETIME_DIFF("2022/10/14", "2022/10/15", "second")` | Supposing `{DATE_COL_1}` is 2017-08-25 and `{DATE_COL_2}` is 2011-08-25. The result is 86400. | Compares two dates and returns the difference in the unit specified. Positive integers indicate the second date being in the past compared to the first and vice versa for negative ones. | -| | | `WEEKDAY(NOW(), "sunday")` | If today is Monday, it returns 1 | Get the week day of NOW() with the first day set as sunday | -| **WEEKDAY** | `WEEKDAY(date, [startDayOfWeek])` | `WEEKDAY(NOW())` | If today is Monday, it returns 0 | Returns the day of the week as an integer between 0 and 6 inclusive starting from Monday by default. You can optionally change the start day of the week by specifying in the second argument | -| | | `WEEKDAY(NOW(), "sunday")` | If today is Monday, it returns 1 | Get the week day of NOW() with the first day set as sunday | +## DATETIME_DIFF +The DATETIME_DIFF function calculates the difference between two dates in various units. + +#### Syntax +```plaintext +DATETIME_DIFF(date1, date2, ["milliseconds" | "ms" | "seconds" | "s" | "minutes" | "m" | "hours" | "h" | "days" | "d" | "weeks" | "w" | "months" | "M" | "quarters" | "Q" | "years" | "y"]) +``` + +#### Sample +```plaintext +DATETIME_DIFF("2022/10/14", "2022/10/15", "second") => 86400 +``` + +#### Remark +This function compares two dates and returns the difference in the specified unit. Positive integers indicate that date1 is in the past compared to date2, and vice versa for negative values. + +--- + +## DATEADD +The DATEADD function adds a specified value to a date or datetime. + +#### Syntax +```plaintext +DATEADD(date | datetime, value, ["day" | "week" | "month" | "year"]) +``` + +#### Sample +```plaintext +DATEADD(2022-03-14, 1, 'day') => 2022-03-15 +DATEADD(2022-03-14, 1, 'week') => 2022-03-21 +DATEADD(2022-03-14, 1, 'month') => 2022-04-14 +DATEADD(2022-03-14, 1, 'year') => 2023-03-14 +``` + +#### Conditional Example +```plaintext +IF(NOW() < DATEADD(date, 10, 'day'), "true", "false") => If the current date is less than the specified date plus 10 days, it returns true. Otherwise, it returns false. +``` + +#### Remark +This function supports date and datetime fields and can handle negative values. + +--- + +## NOW +The NOW function returns the current time and day. + +#### Syntax +```plaintext +NOW() +``` + +#### Sample +```plaintext +NOW() => 2022-05-19 17:20:43 (current date & time) +``` + +#### Conditional Example +```plaintext +IF(NOW() < date, "true", "false") => If the current date is less than the specified date, it returns true. Otherwise, it returns false. +``` + +#### Remark +This function provides the current time and day, supporting datetime fields and negative values. + +--- + +## WEEKDAY +The WEEKDAY function returns the day of the week as an integer. + +#### Syntax +```plaintext +WEEKDAY(date, [startDayOfWeek]) +``` + +#### Sample +```plaintext +WEEKDAY(NOW()) => If today is Monday, it returns 0. +WEEKDAY(NOW(), "sunday") => If today is Monday, it returns 1. +``` + +#### Remark +Returns the day of the week as an integer between 0 and 6 (inclusive), with Monday as the default start day. The start day of the week can be optionally changed by specifying it as the second argument. + +--- + ## Related Articles - [Numeric and Logical Operators](015.operators.md) diff --git a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/050.conditional-expressions.md b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/050.conditional-expressions.md index d6c39712f1..beedff9ca4 100644 --- a/packages/noco-docs/docs/070.fields/040.field-types/060.formula/050.conditional-expressions.md +++ b/packages/noco-docs/docs/070.fields/040.field-types/060.formula/050.conditional-expressions.md @@ -6,14 +6,73 @@ keywords: ['Fields', 'Field types', 'Formula', 'Create formula field', 'Conditio --- -### Conditional expressions - -| Name | Syntax | Sample | Output | -|------------|------------------------------------------------|------------------------------------------------|-------------------------------------------------------------| -| **IF** | `IF(expr, successCase, elseCase)` | `IF({field} > 1, Value1, Value2)` | successCase if `expr` evaluates to TRUE, elseCase otherwise | -| **SWITCH** | `SWITCH(expr, [pattern, value, ..., default])` | `SWITCH({field}, 1, 'One', 2, 'Two', '--')` | Switch case value based on `expr` output | -| **AND** | `AND(expr1, [expr2,...])` | `AND({field} > 2, {field} < 10)` | TRUE if all `expr` evaluate to TRUE | -| **OR** | `OR(expr1, [expr2,...])` | `OR({field} > 2, {field} < 10)` | TRUE if at least one `expr` evaluates to TRUE | +## IF +The IF function in programming and spreadsheet formulas provides a way to perform conditional operations. It evaluates a condition and returns a value if the condition is `TRUE`, or another value if the condition is `FALSE`. + +#### Syntax +```markdown +IF(expr, successCase, elseCase) +``` + +#### Sample +```markdown +IF({field} > 1, Value1, Value2) + +Output +- `Value1` if `{field} > 1` evaluates to TRUE +- `Value2` otherwise +``` + +## SWITCH +The SWITCH function is a versatile tool for handling multiple cases. It evaluates the given expression (expr) against a series of patterns and returns the corresponding value of the first matching pattern. If none match, it returns the default value. + +#### Syntax +```markdown +SWITCH(expr, [pattern, value, ..., default]) +``` + +#### Sample +```markdown +SWITCH({field}, 1, 'One', 2, 'Two', '--') + +Output +Switch case value based on the output of `{field}`: +- `'One'` if `{field} = 1` +- `'Two'` if `{field} = 2` +- `'--'` for the default case +``` + +## AND +The AND function is a logical operator that returns TRUE only if all its conditions are true. + +#### Syntax +```markdown +AND(expr1, [expr2,...]) +``` + +#### Sample +```markdown +AND({field} > 2, {field} < 10) + +Output +TRUE if both `{field} > 2` and `{field} < 10` evaluate to TRUE +``` + +## OR +The OR function is another logical operator, returning TRUE if at least one of its conditions is true. + +#### Syntax +```markdown +OR(expr1, [expr2,...]) +``` + +#### Sample +```markdown +OR({field} > 2, {field} < 10) + +Output +TRUE if at least one of the conditions `{field} > 2` or `{field} < 10` evaluates to TRUE +``` :::tip Logical operators, along with Numerical operators can be used to build conditional `expressions`.