Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
spikenaylor1
Creator
Creator

Source Date Field Problem

My source data is coming in with a date field issue.

Date Created

04/02/2014  11:50:00          - Picked up as a correct date field, can filter via year, month etc.

03/26/2014 04:50 PM          - Not recognised as a date format and therefore will be counted overall, but not when filtered down to years/months.

02/26/2014 09:38 AM          - Not recognised as a date format and therefore will be counted overall, but not when filtered down to years/months.

How can i script to alter the source data into a usable date format.

Any help and advice greatly received.

Regards

Spikenaylor

5 Replies
marcus_sommer

Try the following:

alt(timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm.ss'), MM/DD/YYYY hh:mm.ss),

    timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm tt'), MM/DD/YYYY hh:mm.ss))

- Marcus

spikenaylor1
Creator
Creator
Author

Just cannot get it work

been through it loads

keep getting this error

Error in expression:

')' expected

LOAD [Date Created],

     Value,

alt(timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm.ss'), MM/DD/YYYY hh:mm.ss),

    timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm tt'), MM/DD/YYYY hh:mm.ss))

FROM

(ooxml, embedded labels)

marcus_sommer

The second formatting-statement in my suggestion wasn't wrapped in single-quotes, therefore try this:

alt(timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm.ss'), 'MM/DD/YYYY hh:mm.ss'),

    timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm tt'), 'MM/DD/YYYY hh:mm.ss'))

- Marcus

spikenaylor1
Creator
Creator
Author

Many thanks

didn't quite work.

eventually i figured out that the 04/02/2014  11:50:00 is already recognised as a date and in the UK Date format, so changed the formula to.

alt(timestamp([Date Created], 'DD MMM YYYY'), timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm tt'), 'DD MMM YYYY')) as datecreated,

to suit my purposes.

All works fine now, but now trying to reference this field so I don't have to use the formula throughout, so my code should look like later on:

Month(datecreated) as MonthCreated

I realise that I may need to pre load the staement and then reference it something like

Load alt(timestamp([Date Created], 'DD MMM YYYY'), timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm tt'), 'DD MMM YYYY')) as datecreated;

Load

Month(datecreated) as MonthCreated,

YearName(datecreated as YearCreated

From blahblahblah;

But I cannot get it to work,

keeps erroring with cannot find datecreated field

any ideas how I can reference this new field later throughout the script.

marcus_sommer

You need to change the load-order to:

Load *,

Month(datecreated) as MonthCreated,

YearName(datecreated as YearCreated;

Load alt(timestamp([Date Created], 'DD MMM YYYY'),

                timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm tt'), 'DD MMM YYYY')) as datecreated

From blahblahblah;

to get a valid Preceding Load.

Whereby I suggest to consider to associate your timestamp-field to a master-calendar and if the time-part is really needed to a timetable. You could achieve this by splitting your timestamp into a date- and time-field per:

Load *,

date(floor(datecreated)) as Date,

time(frac(datecreated)) as Time;

Load alt(timestamp([Date Created], 'DD MMM YYYY'),

                timestamp(timestamp#([Date Created], 'MM/DD/YYYY hh:mm tt'), 'DD MMM YYYY')) as datecreated

From blahblahblah;

and the HowTo for the master-tables could you find here: How to use - Master-Calendar and Date-Values.

- Marcus