我在这里遇到了一些问题。我的数据库将unix时间戳存储为字符串2011-09-01 20:22:36
,我需要它作为Unix时间戳###########所以我可以使用>来比较它。然后符号。但是我还需要让它自动设置更新时间戳(ON UPDATE CURRENT TIMESTAMP
)以及default of the timestamp
这不是真正重要的原因我可以在PHP中这样做,如果我需要
我该怎么做? timestamp
现在是日期/时间组合字符串而不是整合,所以我无法比较它?
我的比较字符串是
$sql = sprintf("SELECT nid, field_date_value, field_movie_location_value FROM content_type_mobile_event WHERE updated<'%s'", $vid);
任何人都想知道。
答案 0 :(得分:2)
您可以将DATETIME列与运算符(例如&gt;)进行比较或者&lt;,所以我看不出是什么问题。例如,您可以这样做:
SELECT *
FROM table
WHERE your_column > NOW() - INTERVAL 2 HOUR;
如果确实需要unix时间戳(你不应该,这是PHP用户的坏习惯),你可以使用函数UNIX_TIMESTAMP
:
SELECT UNIX_TIMESTAMP(your_col)
FROM table;
您还可以使用FROM_UNIXTIME将unix时间戳转换为有效日期:
SELECT *
FROM table
WHERE your_column > FROM_UNIXTIME($data)
如果我真的必须使用unix时间戳,我会使用这个,但大多数情况下,你可以不用。
答案 1 :(得分:2)
使用UNIX_TIMESTAMP()
function在查询中转换它。如果必须将它与PHP的Unix时间戳进行比较,最简单的方法就是允许MySQL在其末尾处理列的转换。
$sql = sprintf("SELECT nid, othercols FROM content_type_mobile_event WHERE UNIX_TIMESTAMP(updated) < '%s'", $vid);