0

I got a bit of a problem here. My database stores unix timestamps as a string 2011-09-01 20:22:36 and I need it as a Unix Timestamp ########### so I can compare it using a > then symbol. But I also need to have it automatically set the timestamp on update (ON UPDATE CURRENT TIMESTAMP) as well as have a default of the timestamp which is not really that important cause I can do that in PHP if I need to.

How can I do this? timestamp is now a date/time combo string and not a integre so I cannot compare it?

My comparison string is

$sql = sprintf("SELECT nid, field_date_value, field_movie_location_value FROM content_type_mobile_event WHERE updated<'%s'", $vid);

Incase anyone is wondering.

2 Answers 2

2

Use the UNIX_TIMESTAMP() function to convert it inside your query. If you must compare it to a Unix timestamp from PHP, it is easiest to allow MySQL to handle the column's conversion on its end.

$sql = sprintf("SELECT nid, othercols FROM content_type_mobile_event WHERE UNIX_TIMESTAMP(updated) < '%s'", $vid);
Sign up to request clarification or add additional context in comments.

Comments

2

You can compare DATETIME columns with operators like > or <, so I don't see what the problem is. For example, you can do this :

SELECT *
  FROM table
 WHERE your_column > NOW() - INTERVAL 2 HOUR;

If you really need unix timestamps (you shouldn't, it's a bad habit PHP users have), you can use the function UNIX_TIMESTAMP :

SELECT UNIX_TIMESTAMP(your_col)
  FROM table;

You can also use FROM_UNIXTIME to convert a unix timestamp to a valid date :

SELECT *
  FROM table
 WHERE your_column > FROM_UNIXTIME($data)

This is what I would use if I really had to use a unix timestamp, but most of the time, you can do without.

2 Comments

Yes but NOW() is a mysql function to generate exactly what MySql is looking for then subtract 2 hours. I have a UNIX timestamp integre string that I need to compare to a string and it is not working.
Steven: You don't have to use NOW(), it was only an example. You can use dates in many ways, I suggest you to read the docs. I also edited my post to tell you about UNIX_TIMESTAMP and I'll make a second edit to talk about FROM_UNIXTIME.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.