Hello,
I have concatenated two columns. One column is a custom date and the other is a random number. When I add them together it changes my date format. It adds the year in full and adds a minus sign, however, my date column does not have a minus sign. Does anyone know why and how to fix this?
Here is my code.
CONCAT($Date_for_ID, “-”, $Random_)
Here is my DATE COLUMN.
The $Date_for_ID is a data column using the NOW() and the Column Type is set to Date and the date format it set to YYMMDD. The date output is correct. It looks like this: 240624
Here is my RANDON NUMBER COLUMN:
The $Randon_ is formula column
import random
random.randint(1, 1000000) and the Column Type is set to Text.
Under $Client_ID the formula is changing the date format and currently looks like this:
2024-06-24-242342
2024-06-24-304399
2024-06-24-958056
However, I need for it to look like this:
240624-242342
240624-304399
240624-958056
Thank you.
Hi Jennifer!
I created an example here for you: Community #5422 - Grist
The formula in the example is:
$Date.strftime("%y%m%d") + "-" + $Random_Number
Even when you apply a custom format in a Date type column, it’s always stored in a standard date format - but shown in the format you selected. This is why it’s coming in as 2024-06-24
. We can use Python’s strftime() method to convert the date to a string, formatted as YYMMDD. strftime.org is a handy cheat sheet for the formatting codes.
Add our separator -
then our value from Random Number.
Be sure that you are using a trigger formula in the Random Number column that generates when a record is created. This way, it’s created once at creation then does not change.
Thanks,
Natalie
Hmmm! I am getting an error.
$Date_for_ID.strftime("%y%m%d") + "-" + $Count
The error message
TypeError : can only concatenate str (not “float”) to str
A TypeError
is usually caused by trying
to combine two incompatible types of objects,
by calling a function with the wrong type of object,
or by trying to do an operation not allowed on a given type of object.
You tried to concatenate (add) two different types of objects:
a string (str
) and a number (float
).
https://tinyurl.com/2zekpzyo
Here is a video (TVCRM - Grist)
Because the $Count column is a number, it’s having problems combining the number (float
type) with the formatted date string.
Try this: $Date_for_ID.strftime("%y%m%d") + "-" + str($Count)
I thought of that but it did not work.
Here is the updated code.
$Date_Created.strftime("%y%m%d") + "-" + str($Count)
I got rid of $Date_for_ID, because I can use the $Date_Created column.
Here is the error message.
TypeError : can only concatenate str (not “int”) to str
(in referenced cell Clients[1].Client_ID)
Hey Jennifer,
Can you share your document with support@getgrist.com as OWNER? Then I can take a closer look to see what is causing the error.
Thanks,
Natalie
Hello, okay I set you as the owner.
Here is the URL
https://docs.getgrist.com/wHjQosHKD6vE/TVCRM
Hello @natalie-grist, I got it. You are more than welcome to double check the code. I would appreciate any feedback. This is located under the Clients document. Here is the final formula.
CONCAT($Date_Created.strftime("%y%m%d"), "-", str(int($Count)))
Hey Jennifer!
Looks good! If you want, you can simplify this a bit. Change the Count column to an integer type column.
Now you can remove that int()
conversion from your formula. Updated formula would be
CONCAT($Date_Created.strftime("%y%m%d"), "-", str($Count))
This simply changes where the numeric value is converted to an integer.
1 Like