选择mysql数据并根据timestamp列设置变量的值

时间:2015-10-06 12:25:13

标签: mysql select

我需要从表格中选择数据。该表有一个时间戳列。 如果时间戳超过一年,那么在结果中我喜欢为该记录设置active = false,否则它是active = true。

我可以获取结果然后在PHP中循环它并设置这个值。但这是否已经可以通过某个MySQL select语句来实现?

以下答案:

SELECT if(timestamp < now() - interval  1 year,false,true) as active FROM table

2 个答案:

答案 0 :(得分:1)

尝试下面的代码,

UPDATE 'TABLENAME' SET active='false' WHERE timestamp > '1year'

不更新,

SELECT if(timestamp > '1year',false,true) as flag FROM 'TABLENAME'

答案 1 :(得分:1)

如果您接受一年有365天:

update t
    set active = 0
    where timestampcol < unix_timestamp() - (365*24*60*60);

否则,您需要进行一些转换:

update t
    set active = 0
    where timestampcol < unix_timestamp(date_sub(curdate(), interval 1 year))