1

这可能是微不足道的,但是当我想将时间戳值(例如,返回time())存储到TIMESTAMP我的 MySQL 表的列中时,这两个中的哪一个更可取:

function storeTime($timestamp) {
   // Option one:
   $query = "INSERT INTO faketable (datecol) VALUES (FROM_UNIXTIME(".$timestamp."))";
   // Option two:
   $query = "INSERT INTO faketable (datecol) VALUES (".date("YY-MM-DD HH:MM:II", $timestamp).")";
}

甚至有区别吗?

编辑:对不起,意思是date(),不是strtotime()......

编辑2: NOW()不切芥末,实际时间戳是发送给我的方法的参数。我不知道它是什么提前。

编辑3:我真的不应该在这个晚上问问题。有问题的列实际上是一TIMESTAMP列,而不是一DATETIME列。

4

3 回答 3

1

回答你的问题;不,没有逻辑上的区别。它们都返回日期的字符串表示形式https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtime,MySQL 很乐意将其转换为 DATETIME,或 TIMESTAMP 类型。至于哪个更快的证据会建议 MySQL;http://www.onextrapixel.com/2010/06/23/mysql-has-functions-part-5-php-vs-mysql-performance/使用MySQL的CURDATE()还是PHP的date()更快?

于 2013-02-12T22:44:49.400 回答
0

怎么样

INSERT INTO faketable (datecol) VALUES (UNIX_TIMESTAMP())

我想这就是你要找的 OP

于 2013-02-12T22:26:59.303 回答
0

最简单的是FROM_UNIXTIME()mysql中的一个。这将是一个整数->日期转换。在 PHP 中这样做意味着 integerr->string->datetime,效率要低得多。

同样,您的 strtotime() 完全无效。那不是现在该功能有效。你最终会在数据库中找到's'。

至于存储“现在”时间戳,为什么不直接使用时间戳字段类型呢?当您插入/更新记录时,它会自动将自己设置为当前时间。

于 2013-02-12T22:20:06.090 回答