close ad
 
Important WebAssist Announcement
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

How do I convert UNIX timestamps to the date format d.m.Y inside a query

Thread began 3/03/2010 7:51 am by Rune Brynestad | Last modified 3/04/2010 10:03 am by Dave Buchholz | 4014 views | 6 replies |

Rune Brynestad

How do I convert UNIX timestamps to the date format d.m.Y inside a query

I am trying to write a query but I have run into a snag. I am trying to convert an UNIX timestamp to something PHP would like.

For example, I have this query.
SELECT Name, FROM_UNIXTIME(UNIX_TIMESTAMP(Date_of_birth),'%d.%m.%Y') As Date_of_Birth FROM Test
This should convert to "11.08.1964" however it converts to 01.01.1970

How do I convert UNIX timestamps to the date format d.m.Y inside a query?

I'm attaching my sample files and database.

Regards
Rune

Attached Files
Test.zip
Sign in to reply to this post

Jimmy Wu

Try using the Dateadd call instead and see if that works for you. Here's a reference so you can take a look at what this function does:
ms186819.aspx

Sign in to reply to this post

Dave BuchholzBeta Tester

Firstly the value you have in your db (INSERT INTO `Test` VALUES ('1', 'Rune Brynestad', '-170125200')) is not a unix timestamp

When you have corrected that the correct way to convert this would be:

SELECT Name, FROM_UNIXTIME(Date_of_birth,'%d.%m.%Y') As DOB FROM Test



Tip: Always give your alias a unique name

Sign in to reply to this post

Rune Brynestad

Have done some more testing. From what I see, MySQL's FROM_UNIXTIME() function does not support negative epoch timestamps (just as the inverse function UNIX_TIMESTAMP() does not either).

It looks like I could use the DATE_ADD function

SELECT Name, DATE_ADD('1970-01-01', INTERVAL Date_of_birth second) As DOB FROM Test

gives me 1964-08-11 00:00:00 which is correct.

What I need now is a way to format this date the way we use it in Norway which is 11.08.1964 or dd.mm.yyyy

It still have to be done inside the query. Could it be done ?

Regards
Rune

Sign in to reply to this post

Dave BuchholzBeta Tester

Try this:

SELECT Name, DATE_FORMAT(DATE_ADD(FROM_UNIXTIME(0), INTERVAL Date_of_birth SECOND), '%d.%m.%Y') As DOB FROM Test
Sign in to reply to this post

Rune Brynestad

It works like a dream.

Thanks a lot Dave.

Regards
Rune

Sign in to reply to this post

Dave BuchholzBeta Tester

No worries, it was an interesting question and I learnt something in the process of solving it so we both gained something.

Sign in to reply to this post

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question

Content

rating

Layout

rating

Ease of use

rating

security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...