How to update date display format in kibana? - elasticsearch

I want to change the date display format in kibana. Kibana provides this feature via moment.js, but not enough documentation available, or at least it doesn't work properly.
Current date format: "MMMM Do YYYY, HH:mm:ss.SSS"
Required date format: "DD MMM YY" (like 29 July 17)
I tried changing the date format of the Date field in "Management" section, but that didn't work. (do I need to restart the server or something to make it work)
Or
Where am I going wrong
Or
What are some other ways to change date display format.
and What does popularity of the field do here ?
Some screenshots for the reference.

As a solution, I had to fix it in the scripts feeding data to elasticsearch itself.

Related

Changing format of date without using to_char - Oracle

I have to get the max payment date on an invoice and I am having trouble with the date format. I do not need the max in this formula as I am using the format in a reporting tool that is pulling the max from what it finds for me.
Using "to_char({datefield},'mm/dd/yyyy')" works for displaying that date the way we would like BUT when you use summary function MAX it does not pull the correct date because it is looking at a string and not a date (it will think 12/3/21 is larger than 3/2/22).
Another thing I have tried is trunc - "trunc({datefield})" which gives us the correct max date but it changes the formatting. For example if the date prior to the formula being applied is "8/12/21 12:00:00:000" the trunc formula will display it as 12-08-21 which is horribly wrong.
Long story short is I need a way to change a date/time to date with the format of 'mmmm/dd/yyyy' WITHOUT converting it to a string with something like to_char. Thank you!!!!
A DATE is a binary data type consisting of 7 bytes representing: century, year-of-century, month, day, hour, minute and second. It ALWAYS has all of those components and it is NEVER stored with any (human-readable) format.
What you are seeing when a date is displayed is the client application you are using to access the database making a decision to be helpful to you, the user, and display the binary DATE provided by the database in a human-readable format.
If you want to change how the DATE is displayed then you either need to:
Change the settings on the client application that controls how it formats dates when it displays them to you; or
Change the data-type so that it is no longer a DATE (which does not have a format) to a data type where the values of the date can be formatted (such as a string). You can do this using TO_CHAR.
If you want to find the maximum then do it BEFORE applying the formatting:
SELECT TO_CHAR(MAX({datefield}),'mm/dd/yyyy')
FROM your_table;

Why selecting a date\time range into Kibana the query is performed with wrong dates? URL parameters are wrong

I am working on a project involving ElasticSearch and visualizing data on Kibana and I am finding the following problem with date range selection.
As you can see in the following picture I selected I time range that starts from April 8 2021 at 00:00:00.000 and end at April 10 2021 00:00:00.000 . Then I clicked the Refresh button in order to perform the query.
The problem is that, as you can see in the highligher URL section the passed date range into the query is wrong !!! Infact this is the timerange section of my query into my URL parameters:
time:(from:'2021-04-07T22:00:00.000Z',to:'2021-04-10T10:00:00.000Z')
As you can see it is pretty differnt from what I selected into the start and end date form fields.
Changing the values into the start and end date form fields automatically changes also the values into the URL parameters but they still wrong.
What could be the problem? Why selecting dates and time into these form fields the parameters value are wrong? What could be the cause of this issue? How can I try to fix it?
I suspect something related to the server timezone (the server where Elastic\Kibana) are installed or something related to some Kibana configuration but I really have no idea
The kibana docs specify:
The timezone that Kibana uses. The default value of Browser uses the timezone detected by the browser.
So (I'm assuming) your browser default timezone is UTC + 2, meaning when you select 00:00 it's converted to 22:00 UTC timezone, The Z in 2021-04-07T22:00:00.000Z is in indicator here.

How to index the document with three letter month format?

Following is the document I have.
{
"host": "172.31.183.9",
"log_sequence": "47280",
"log_date": "Nov 3 12:29:26.096"
}
I have tried the following date formats for mapping
a. dateOptionalTime
b. MMM d HH:mm:ss.SSSZ
but it is still showing mapper parsing exception. Can anybody suggest a way for the mapping format?
The problem is with the Z at the end of your date format, which expects a timezone offset/id, which is missing from your example.
So this pattern MMM d HH:mm:ss.SSS should work.
Elasticsearch official date format documentation says it support custom datetime format under joda.
Joda documentation for datetime mention
M month of year month July; Jul; 07
Month: 3 or over, use text, otherwise use number.
So you can refer this documentation to create a custom format for elasticsearch mappings and index the data accordingly.
I think you can figure out a way if you will play around with custom joda datetime formats.
Post the exact mappings if this helps

How to format birt date report parameter?

By default if the input parameter to BIRT report is of type Date, it takes yyyy-MM-dd format.
Can we change to something else e.g. may be dd/MM/yyyy ?
You can change the input format for a date parameter. Click on "Change..." select Format as "Custom" and you can enter a valid format code as you like.
If you want to enter a default Date you still have to use the yyyy-MM-dd Format, this cannot be changed ( where I used new Date() in the Picture), but the output format will still be your entered format.
Another option is to use the format Date Time section in the Birt designer and choose the right locale and formatting for the date.
I have done it in Birt 3.7 and works fine
There can be many way to do that but the easy one is you can do this in SQL Query itself.
If you are using DB2 you may try
VARCHAR_FORMAT("Your Column Mapping Name",'DD-Mon-YYYY') AS dataSetName.
But this will change its Data type to String
Try if this make any seance.

Datetime Format Setting In SSRS

We have a requirement where date time values would be passed to the report parameter which is of "String" date type (and not "DateTime"). The report parameter would be a queried one i.e. it would have a list of values in which the passed value should fall in.
The strange part is that if the date time value passed to this parameter is passed in this format mm/dd/yyyy hh:mm:ss AM/PM then only it succeeds otherwise a error is displayed (If month/date/hour/minute/second is having a single digit value then we need to pass single digit value to parameter as well).
Assuming that the report server picks this format from the "regional settings" in control panel, we tried modifying the date & time formats as yyyy-mm-dd & HH:mm:ss but the outcome was the same.
On researching more I found some suggestions specifying to change the language property in the rdl (I was not able to figure out how) but this would not be the solution I am looking for. I also found another topic here but it didn't provide the solution we are looking for.
I need to understand if this format is controlled at the report server level & is it configurable. It would be great if someone can provide some guidance.
Thanks.
Format(,"mm/dd/yyyy hh:mm:ss AM/PM ")
Then it doesn't matter what the regional settings are.

Resources