我这里有点问题。我的数据库将unix时间戳存储为字符串2011-09-01 20:22:36,我需要它作为Unix时间戳###########,这样我就可以使用>然后的符号对其进行比较。但是,我也需要让它自动设置更新时间戳(ON UPDATE CURRENT TIMESTAMP),并有一个default of the timestamp ,这并不是很重要的原因,如果需要的话,我可以在PHP中这样做。
我如何做到这一点?timestamp现在是一个日期/时间组合字符串,而不是一个integre,所以我无法比较它?
我的比较字符串是
$sql = sprintf("SELECT nid, field_date_value, field_movie_location_value FROM content_type_mobile_event WHERE updated<'%s'", $vid);
万一有人想知道。
发布于 2011-09-02 01:16:23
使用UNIX_TIMESTAMP() function在查询中转换它。如果您必须将其与来自PHP的Unix时间戳进行比较,则允许MySQL在其末尾处理列的转换是最简单的。
$sql = sprintf("SELECT nid, othercols FROM content_type_mobile_event WHERE UNIX_TIMESTAMP(updated) < '%s'", $vid);发布于 2011-09-02 01:15:17
您可以将DATETIME列与诸如>或<之类的运算符进行比较,因此我不知道问题出在哪里。例如,您可以这样做:
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时间戳,我会使用它,但大多数情况下,您可以不使用它。
https://stackoverflow.com/questions/7278329
复制相似问题