时间戳更新问题

时间:2013-11-02 06:58:01

标签: php mysql sql

我有一个用于匹配猜测的MySQL表,当任何用户猜测该表采用该猜测的当前时间戳时。 当匹配完成后,表格将更新匹配结果字段。 我的问题是,当表更新结果时,它会更新时间戳以及如何使用MySQL或PHP停止对时间戳的更改?我只想更改结果字段,我的查询不包括时间戳,但即使它正在更新。 我的表包含:

match_id, timestamp, result, guess

这是我的疑问:

 UPDATE guesses SET result = $kg_yok where match_id= $match_id AND guess = 11

5 个答案:

答案 0 :(得分:0)

我不知道我是否理解你,但我认为您应该更改时间戳的mysql表选项使其为null或无。不要做current_timestamp

答案 1 :(得分:0)

声明要将时间和日期存储为DATETIME的字段,因为每次更新时都会更新TIMESTAMP记录是否需要它

  

DateTime vs Timestamp

答案 2 :(得分:0)

首先,我宁愿建议您每次手动使用查询时将列从时间戳更改为日期时间并插入/更新日期。将coumn定义为datetime将使您在指定特定时区的时间方面获得更多控制权

如果您想继续将时间戳作为阅读文档

,仍然如此

答案 3 :(得分:0)

谢谢你们,但我想我找出了解决方案。 我将查询更改为:

UPDATE guesses SET result = $kg_yok, timestamp=timestamp 
where match_id= $match_id AND guess = 11

这将采用与时间戳相同的值并将其重新分配给新更新,因为我可以通过重新分配来保持值不变。

答案 4 :(得分:0)

虽然您找到了解决方案,但您可能需要考虑稍微修改该表。您有一个时间戳字段来记录操作发生的时间,但如果您想知道创建记录的时间,则需要两个字段:

created_at: TIMESTAMP DEFAULT CURRENT_TIMESTAMP

updated_at: TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

或者,为什么不简单地记录所有猜测