Browse Source

docs: formula, datetime

Signed-off-by: Raju Udava <86527202+dstala@users.noreply.github.com>
pull/6467/head
Raju Udava 1 year ago
parent
commit
e8dd54b49a
  1. 14
      packages/noco-docs/docs/060.fields/020.create-field.md
  2. 13
      packages/noco-docs/docs/060.fields/030.field-types/050.custom-types/050.barcode.md
  3. 7
      packages/noco-docs/docs/060.fields/030.field-types/050.custom-types/060.geometry.md
  4. 7
      packages/noco-docs/docs/060.fields/030.field-types/050.custom-types/070.specific-db-type.md
  5. 12
      packages/noco-docs/docs/060.fields/030.field-types/050.custom-types/080.json.md
  6. 39
      packages/noco-docs/docs/060.fields/030.field-types/060.formula/010.formula.md
  7. 39
      packages/noco-docs/docs/060.fields/030.field-types/060.formula/015.operators.md
  8. 33
      packages/noco-docs/docs/060.fields/030.field-types/060.formula/020.numeric-functions.md
  9. 33
      packages/noco-docs/docs/060.fields/030.field-types/060.formula/030.string-functions.md
  10. 27
      packages/noco-docs/docs/060.fields/030.field-types/060.formula/040.date-functions.md
  11. 40
      packages/noco-docs/docs/060.fields/030.field-types/060.formula/050.conditional-expressions.md
  12. 38
      packages/noco-docs/docs/060.fields/030.field-types/070.date-time-based/010.date-time.md
  13. 30
      packages/noco-docs/docs/060.fields/030.field-types/070.date-time-based/020.date.md
  14. 23
      packages/noco-docs/docs/060.fields/030.field-types/070.date-time-based/030.time.md
  15. 26
      packages/noco-docs/docs/060.fields/030.field-types/070.date-time-based/040.duration.md
  16. 6
      packages/noco-docs/docs/060.fields/050.delete-field.md
  17. BIN
      packages/noco-docs/static/img/v2/fields/date.png
  18. BIN
      packages/noco-docs/static/img/v2/fields/time.png

14
packages/noco-docs/docs/060.fields/020.create-field.md

@ -1,14 +0,0 @@
---
title: 'Create field'
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
## Create field
1. Click on `+` icon to the right of `Fields header`
2. On the dropdown modal, enter the field name.
3. Select the field type from the dropdown.
4. [Optional] Default value can be set for the field.

13
packages/noco-docs/docs/060.fields/030.field-types/050.custom-types/050.barcode.md

@ -33,7 +33,18 @@ Cell displays the barcode generated from the source field. Click on the cell to
### Supported barcode types ### Supported barcode types
NocoDB supports the following barcode types for the barcode field type. NocoDB supports the following barcode types for the barcode field type.
CODE128, EAN, EAN-13, EAN-8, EAN-5, EAN-2, UPC (A), CODE39, ITF-14, MSI, Pharmacode, Codabar. - CODE128
- EAN
- EAN-13
- EAN-8
- EAN-5
- EAN-2
- UPC (A)
- CODE39
- ITF-14
- MSI
- Pharma code
- Coda bar
## Related fields ## Related fields
- [QR code](040.QR-code.md) - [QR code](040.QR-code.md)

7
packages/noco-docs/docs/060.fields/030.field-types/050.custom-types/060.geometry.md

@ -3,3 +3,10 @@ title: 'Geometry'
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
## Create a geometry field
1. Click on `+` icon to the right of `Fields header`
2. [**Optional**] On the dropdown modal, enter the field name.
3. Select the field type as `Geometry` from the dropdown.
4. Click on `Save Column` button.

7
packages/noco-docs/docs/060.fields/030.field-types/050.custom-types/070.specific-db-type.md

@ -3,3 +3,10 @@ title: 'Specific DB type'
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
## Create a Specific DB Type field
1. Click on `+` icon to the right of `Fields header`
2. [**Optional**] On the dropdown modal, enter the field name.
3. Select the field type as `Specific DB Type` from the dropdown.
4. Provide DB specific data type configurations
5. Click on `Save Column` button.

12
packages/noco-docs/docs/060.fields/030.field-types/050.custom-types/080.json.md

@ -3,3 +3,15 @@ title: 'JSON'
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
`JSON` is a custom field type that allows you to store JSON data in a column. Useful for storing data that can be represented as a JSON object, like API Response, or a set of key-value pairs.
## Create a JSON field
1. Click on `+` icon to the right of `Fields header`
2. [**Optional**] On the dropdown modal, enter the field name.
3. Select the field type as `JSON` from the dropdown.
4. Click on `Save Column` button.
### Cell display
Cell displays the JSON data stored in the column. Click on expand record icon to open the JSON data in an editor modal.

39
packages/noco-docs/docs/060.fields/030.field-types/060.formula/010.formula.md

@ -3,3 +3,42 @@ title: 'Formula'
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
## Create a formula field
1. Click on `+` icon to the right of `Fields header`
2. [**Optional**] On the dropdown modal, enter the field name.
3. Select the field type as `Formula` from the dropdown.
4. Insert required formula
5. Click on `Save Column` button.
![image](/img/v2/fields/formula.png)
:::tip
- You can use explicit numerical values/ strings as needed, e.g. `123` (numeric) or `"123"` (string).
- You can reference column names in equation with `{}`, e.g. `{column_name}`
- Nested formula (formula equation referring to another formula column) is supported
:::
:::note
Unlike other column types, formula cells cannot be modified by double-clicking since the value is generated based on the formula.
<img width="253" alt="image" src="https://user-images.githubusercontent.com/35857179/189109486-4d41f2b7-0a19-46ef-8bb4-a8d1aabd3592.png" />
:::
## Supported formula functions
- [Numeric and Logical Operators](015.operators.md)
- [Numeric Functions](020.numeric-functions.md)
- [String Functions](030.string-functions.md)
- [Date Functions](040.date-functions.md)
- [Conditional Expressions](050.conditional-expressions.md)

39
packages/noco-docs/docs/060.fields/030.field-types/060.formula/015.operators.md

@ -0,0 +1,39 @@
---
title: 'Numeric and Logical Operators'
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
### Numeric operators
| Operator | Sample | Description |
|----------|-----------------------------|----------------------------------|
| `+` | `{Column1} + {Column2} + 2` | Addition of numeric values |
| `-` | `{Column1} - {Column2}` | Subtraction of numeric values |
| `*` | `{Column1} * {Column2}` | Multiplication of numeric values |
| `/` | `{Column1} / {Column2}` | Division of numeric values |
:::tip
To change the order of arithmetic operation, you can use round bracket parenthesis ().
Example: ({Column1} + ({Column2} * {Column3}) / (3 - $Column4$ ))
:::
### Logical operators
| Operator | Sample | Description |
|----------|--------------------------|--------------------------|
| `<` | `{Column1} < {Column2}` | Less than |
| `>` | `{Column1} > {Column2}` | Greater than |
| `<=` | `{Column1} <= {Column2}` | Less than or equal to |
| `>=` | `{Column1} >= {Column2}` | Greater than or equal to |
| `==` | `{Column1} == {Column2}` | Equal to |
| `!=` | `{Column1} != {Column2}` | Not equal to |
## Related Articles
- [Numeric Functions](020.numeric-functions.md)
- [String Functions](030.string-functions.md)
- [Date Functions](040.date-functions.md)
- [Conditional Expressions](050.conditional-expressions.md)

33
packages/noco-docs/docs/060.fields/030.field-types/060.formula/020.numeric-functions.md

@ -0,0 +1,33 @@
---
title: 'Numeric functions'
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
### Numeric functions
| Name | Syntax | Sample | Output |
|-------------|----------------------------|----------------------------------------|-------------------------------------------------------------------------------------------------------------|
| **ABS** | `ABS(value)` | `ABS({Column})` | Absolute value of the input parameter |
| **ADD** | `ADD(value1,[value2,...])` | `ADD({Column1}, {Column2})` | Sum of input parameters |
| **AVG** | `AVG(value1,[value2,...])` | `AVG({Column1}, {Column2})` | Average of input parameters |
| **CEILING** | `CEILING(value)` | `CEILING({Column})` | Rounded next largest integer value of input parameter |
| **EXP** | `EXP(value)` | `EXP({Column})` | Exponential value of input parameter (`e^x`) |
| **FLOOR** | `FLOOR(value)` | `FLOOR({Column})` | Rounded largest integer less than or equal to input parameter |
| **INT** | `INT(value)` | `INT({Column})` | Integer value of input parameter |
| **LOG** | `LOG([base], value)` | `LOG(10, {Column})` | Logarithm of input parameter to the base (default = e) specified |
| **MAX** | `MAX(value1,[value2,...])` | `MAX({Column1}, {Column2}, {Column3})` | Maximum value amongst input parameters |
| **MIN** | `MIN(value1,[value2,...])` | `MIN({Column1}, {Column2}, {Column3})` | Minimum value amongst input parameters |
| **MOD** | `MOD(value1, value2)` | `MOD({Column}, 2)` | Remainder after integer division of input parameters |
| **POWER** | `POWER(base, exponent)` | `POWER({Column}, 3)` | `base` to the `exponent` power, as in `base ^ exponent` |
| **ROUND** | `ROUND(value, precision)` | `ROUND({Column}, 3)` | Round input `value` to decimal place specified by `precision` (Nearest integer if `precision` not provided) |
| **SQRT** | `SQRT(value)` | `SQRT({Column})` | Square root of the input parameter |
## Related Articles
- [Numeric and Logical Operators](015.operators.md)
- [String Functions](030.string-functions.md)
- [Date Functions](040.date-functions.md)
- [Conditional Expressions](050.conditional-expressions.md)

33
packages/noco-docs/docs/060.fields/030.field-types/060.formula/030.string-functions.md

@ -0,0 +1,33 @@
---
title: 'String functions'
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
### String functions
| Name | Syntax | Sample | Output |
|-------------|----------------------------------|-------------------------------------|---------------------------------------------------------------------------|
| **CONCAT** | `CONCAT(str1, [str2,...])` | `CONCAT({Column1}, ' ', {Column2})` | Concatenated string of input parameters |
| **LEFT** | `LEFT(str1, n)` | `LEFT({Column}, 3)` | `n` characters from the beginning of input parameter |
| **LEN** | `LEN(str)` | `LEN({Column})` | Input parameter character length |
| **LOWER** | `LOWER(str)` | `LOWER({Column})` | Lower case converted string of input parameter |
| **MID** | `MID(str, position, [count])` | `MID({Column}, 3, 2)` | Alias for `SUBSTR` |
| **REPEAT** | `REPEAT(str, count)` | `REPEAT({Column}, 2)` | Specified copies of the input parameter string concatenated together |
| **REPLACE** | `REPLACE(str, srchStr, rplcStr)` | `REPLACE({Column}, 'int', 'num')` | String, after replacing all occurrences of `srchStr` with `rplcStr` |
| **RIGHT** | `RIGHT(str, n)` | `RIGHT({Column}, 3)` | `n` characters from the end of input parameter |
| **SEARCH** | `SEARCH(str, srchStr)` | `SEARCH({Column}, 'str')` | Index of `srchStr` specified if found, 0 otherwise |
| **SUBSTR** | `SUBTR(str, position, [count])` | `SUBSTR({Column}, 3, 2)` | Substring of length 'count' of input string, from the postition specified |
| **TRIM** | `TRIM(str)` | `TRIM({Column})` | Remove trailing and leading whitespaces from input parameter |
| **UPPER** | `UPPER(str)` | `UPPER({Column})` | Upper case converted string of input parameter |
| **URL** | `URL(str)` | `URL({Column})` | Convert to a hyperlink if it is a valid URL |
## Related Articles
- [Numeric and Logical Operators](015.operators.md)
- [Numeric Functions](020.numeric-functions.md)
- [Date Functions](040.date-functions.md)
- [Conditional Expressions](050.conditional-expressions.md)

27
packages/noco-docs/docs/060.fields/030.field-types/060.formula/040.date-functions.md

@ -0,0 +1,27 @@
---
title: 'Date functions'
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
| 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 columns 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 columns 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 columns 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 columns 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 columns 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 columns 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 columns 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 |
## Related Articles
- [Numeric and Logical Operators](015.operators.md)
- [Numeric Functions](020.numeric-functions.md)
- [String Functions](030.string-functions.md)
- [Conditional Expressions](050.conditional-expressions.md)

40
packages/noco-docs/docs/060.fields/030.field-types/060.formula/050.conditional-expressions.md

@ -0,0 +1,40 @@
---
title: 'Conditional expressions'
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
### Conditional expressions
| Name | Syntax | Sample | Output |
|------------|------------------------------------------------|------------------------------------------------|-------------------------------------------------------------|
| **IF** | `IF(expr, successCase, elseCase)` | `IF({Column} > 1, Value1, Value2)` | successCase if `expr` evaluates to TRUE, elseCase otherwise |
| **SWITCH** | `SWITCH(expr, [pattern, value, ..., default])` | `SWITCH({Column}, 1, 'One', 2, 'Two', '--')` | Switch case value based on `expr` output |
| **AND** | `AND(expr1, [expr2,...])` | `AND({Column} > 2, {Column} < 10)` | TRUE if all `expr` evaluate to TRUE |
| **OR** | `OR(expr1, [expr2,...])` | `OR({Column} > 2, {Column} < 10)` | TRUE if at least one `expr` evaluates to TRUE |
:::tip
Logical operators, along with Numerical operators can be used to build conditional `expressions`.
Examples:
```
IF({marksSecured} > 80, "GradeA", "GradeB")
```
```
SWITCH({quarterNumber},
1, 'Jan-Mar',
2, 'Apr-Jun',
3, 'Jul-Sep',
4, 'Oct-Dec',
'INVALID'
)
```
:::
## Related Articles
- [Numeric and Logical Operators](015.operators.md)
- [Numeric Functions](020.numeric-functions.md)
- [String Functions](030.string-functions.md)
- [Date Functions](040.date-functions.md)

38
packages/noco-docs/docs/060.fields/030.field-types/070.date-time-based/010.date-time.md

@ -3,3 +3,41 @@ title: 'Date Time'
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
`Date Time` field type is used to store both date and time values in a single column.
## Create a date time field
1. Click on `+` icon to the right of `Fields header`
2. [**Optional**] On the dropdown modal, enter the field name.
3. Select the field type as `DateTime` from the dropdown.
4. Configure `Date Format`
5. Configure `Time Format`
6. [**Optional**] Configure default value
7. Click on `Save Column` button.
![image](/img/v2/fields/datetime.png)
### Supported date formats
| Format | Example |
|--------------|--------------|
| YYYY-MM-DD | 2023-09-22 |
| YYYY/MM/DD | 2023/09/22 |
| DD-MM-YYYY | 22-09-2023 |
| MM-DD-YYYY | 09-22-2023 |
| DD/MM/YYYY | 22/09/2023 |
| MM/DD/YYYY | 09/22/2023 |
| DD MM YYYY | 22 09 2023 |
| MM DD YYYY | 09 22 2023 |
| YYYY MM DD | 2023 09 22 |
### Supported time formats
| Format | Example |
|-----------|------------|
| HH:mm:ss | 12:45:30 |
| HH:mm | 14:20 |
## Related fields
- [Date](020.date.md)
- [Time](030.time.md)
- [Duration](040.duration.md)

30
packages/noco-docs/docs/060.fields/030.field-types/070.date-time-based/020.date.md

@ -3,3 +3,33 @@ title: 'Date'
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
`Date` field type is used to store date values in a single column. NocoDB supports a wide range of date formats, as detailed in the table below.
## Create a date field
1. Click on `+` icon to the right of `Fields header`
2. [**Optional**] On the dropdown modal, enter the field name.
3. Select the field type as `Date` from the dropdown.
4. Configure `Date Format`
5. [**Optional**] Configure default value
6. Click on `Save Column` button.
![image](/img/v2/fields/date.png)
### Supported date formats
| Format | Example |
|--------------|--------------|
| YYYY-MM-DD | 2023-09-22 |
| YYYY/MM/DD | 2023/09/22 |
| DD-MM-YYYY | 22-09-2023 |
| MM-DD-YYYY | 09-22-2023 |
| DD/MM/YYYY | 22/09/2023 |
| MM/DD/YYYY | 09/22/2023 |
| DD MM YYYY | 22 09 2023 |
| MM DD YYYY | 09 22 2023 |
| YYYY MM DD | 2023 09 22 |
## Related fields
- [DateTime](010.date-time.md)
- [Time](030.time.md)
- [Duration](040.duration.md)

23
packages/noco-docs/docs/060.fields/030.field-types/070.date-time-based/030.time.md

@ -3,3 +3,26 @@ title: 'Time'
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
`Time` field type is used to store time values in a single column. Time formats supported by NocoDB are listed in the table below.
## Create a time field
1. Click on `+` icon to the right of `Fields header`
2. [**Optional**] On the dropdown modal, enter the field name.
3. Select the field type as `Time` from the dropdown.
4. Configure `Time Format`
5. [**Optional**] Configure default value
6. Click on `Save Column` button.
![image](/img/v2/fields/time.png)
### Supported time formats
| Format | Example |
|-----------|------------|
| HH:mm:ss | 12:45:30 |
| HH:mm | 14:20 |
## Related fields
- [DateTime](010.date-time.md)
- [Date](020.date.md)
- [Duration](040.duration.md)

26
packages/noco-docs/docs/060.fields/030.field-types/070.date-time-based/040.duration.md

@ -4,3 +4,29 @@ title: 'Duration'
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
`Duration` field type is used to store duration of time in seconds or minutes. Different formats are supported by NocoDB, as detailed in the table below.
## Create a duration field
1. Click on `+` icon to the right of `Fields header`
2. [**Optional**] On the dropdown modal, enter the field name.
3. Select the field type as `Duration` from the dropdown.
4. Configure `Duration Format`
5. [**Optional**] Configure default value
6. Click on `Save Column` button.
![image](/img/v2/fields/duration.png)
### Supported duration formats
| Format | Example |
|--------------|--------------|
| HH:mm | 14:20 |
| HH:mm:ss | 12:45:30 |
| HH:mm:ss.s | 12:45:30.5 |
| HH:mm.ss.ss | 12:45.30.50 |
| HH:mm.ss.sss | 12:45.30.500 |
## Related fields
- [DateTime](010.date-time.md)
- [Date](020.date.md)
- [Time](030.time.md)

6
packages/noco-docs/docs/060.fields/050.delete-field.md

@ -3,3 +3,9 @@ title: 'Delete field'
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
:::danger
**This action cannot be undone.**
:::
1. Open the field context menu by clicking on `...` .

BIN
packages/noco-docs/static/img/v2/fields/date.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
packages/noco-docs/static/img/v2/fields/time.png vendored

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Loading…
Cancel
Save