# In DataPrep

**In DataPrep,** you can create custom calculated columns based on existing data.&#x20;

For example, you might have a dataset with "Sales" and "Expenses" columns and want to calculate the "Profit" as a new column:

You can add a new column 'profit' and then write the following script:

```typescript
return SalesColumn - ExpensesColumn;
```

Here, the calculated column "Profit" is derived by subtracting the "Expenses" column from the "Sales" column.

### Examples

**Example 1: Concatenate First and Last Name in New Column**

*Description:* This script concatenates the "First Name" and "Last Name" columns and returns a single string containing both names in a new column 'Full Name'.

*Code:*

```javascript
// Concatenate First and Last Name
Col_firstName + " " + Col_lastName
```

***

**Example 2: Create a New LocalDateTime Column**

*Description:* This script parses the string values in the "Order Date" column, assuming they are in the format "yyyy-MM-dd HH:mm:ss," and converts them into LocalDateTime objects in a new column.

*Code:*

```javascript
// Create a New LocalDateTime Column by Converting the String Values
// in "Order Date" Column to LocalDateTime Type
// Sample input: "2009-09-13 14:40:33"
LocalDateTimeUtil.parse(Col_orderDate, "yyyy-MM-dd HH:mm:ss")
```

***

**Example 3: Create a New Column with the Quarter for the "Order Date"**

*Description:* This script determines the quarter for the "Order Date" based on the month and creates a new column with the quarter information.

*Code:*

```javascript
// Create a new column with the quarter for the "Order Date"
// Assuming you have "Order Date" column of type LocalDateTime
var month = LocalDateTimeUtil.getMonth(Col_orderDate);
if (month == 1 || month == 2 || month == 3) {"Q1";}
else if (month == 4 || month == 5 || month == 6) {"Q2";}
else if (month == 7 || month == 8 || month == 9) {"Q3";}
else if (month == 10 || month == 11 || month == 12) {"Q4";}
else {"";}
```

***

**Example 4: Reformat a Date String**

**Description:** In this example, you have retrieved data with a date in a less user-friendly format, such as "2023-10-25T12:22:05.2247439Z." To improve data management and enhance readability, you will reformat the date information and introduce a new 'date' column.

*Code:*

```java
// Parse the date string into an Instant
var instant = Instant.parse(datetime);

// Extract the year, month, and day components from the Instant
var year = InstantUtil.getYear(instant);
var month = InstantUtil.getMonth(instant);
var day = InstantUtil.getDayOfMonth(instant);

// Create a LocalDate object from the extracted components
return LocalDate.of(year, month, day);
```

<figure><img src="/files/YACLyTdgpkXZyPevgCO1" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.b2winsuite.com/5.4/scripting/scripting-in-b2data/in-dataprep.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
