[英]mySQL datetime and timestamp
我想更新DATETIME <TIMESTAMP的mysql行
DATETIME就像:“ 2014-06-21 17:56:00”
TIMESTAMP就像1454546656(现在)
我想更新过去DATETIME的所有行
什么是处理大量行的最简单方法?
谢谢。
在mysql中有2个功能是
from_unixtime()
将Unix时间转换为人类可读的日期
unix_timestamp()
将人类可读的日期转换为时间戳
所以您可以使用其中之一进行比较
这里看起来如何
mysql> select from_unixtime(1454546656);
+---------------------------+
| from_unixtime(1454546656) |
+---------------------------+
| 2016-02-04 06:14:16 |
+---------------------------+
mysql> select unix_timestamp('2014-06-21 17:56:00');
+---------------------------------------+
| unix_timestamp('2014-06-21 17:56:00') |
+---------------------------------------+
| 1403353560 |
+---------------------------------------+
mysql> select unix_timestamp('2014-06-21 17:56:00') < 1454546656;
+----------------------------------------------------+
| unix_timestamp('2014-06-21 17:56:00') < 1454546656 |
+----------------------------------------------------+
| 1 |
+----------------------------------------------------+
mysql> select from_unixtime(1454546656) > '2014-06-21 17:56:00';
+---------------------------------------------------+
| from_unixtime(1454546656) > '2014-06-21 17:56:00' |
+---------------------------------------------------+
| 1 |
+---------------------------------------------------+
因此,取决于您要使用哪个进行比较。
由于您使用的是PHP,请尝试使用PHP Date函数:
$ts = date("Y-m-d H:i:s", $timestamp); //Convert Unix Timestamp to MySQL Date/Time Format
UPDATE table WHERE DATETIME < '$ts';
这是我能想到的最轻巧的方法,因为它不会为每个记录重新计算时间戳,而且,如果对DateTime字段建立了索引,它的运行速度将非常快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.