0

我一直在尝试寻找一个直接的答案,但由于某种原因,我没有找到答案。我想知道将日期/时间存储到 mysql 中的最佳方法是什么?

我研究了mysql中的时间戳很好,因为它也会根据时区更新。

所以我已经将我的列名timestampdatatypemysql中的一样设置为时间戳,但是将当前日期/时间存储到那个的最佳语法是什么?

"INSERT INTO table(timestamp) VALUES(now())" //or use timestamp()? or is there such thing?

?

请帮忙,谢谢!

4

2 回答 2

0

以下是一些注意事项:

  • 将列类型设置为,BIGINT以便您可以存储 64 位时间戳
  • time()您可以使用 PHP函数或 MySQL 的UNIX_TIMESTAMP()函数插入
  • 将您的列命名为timestamp. 这是一个允许的词1见最后一节,但它也是 MySQL 中的一种类型。

如果您将时间存储为 MySQL 中的 Unix 时间戳,它们将存储在 UTC 中,这使得处理时区转换非常容易。在 64 位环境中,PHP 可以处理高达 219,250,468 年的日期。

这两个查询是相同的:

INSERT INTO `table` (`time`) VALUES(UNIX_TIMESTAMP());
// or
$time = time();
INSERT INTO `table` (`time`) VALUES($time);

然后在 PHP 中显示它:

SELECT `time` from `table` WHERE `id` = 1;
echo date('Y-m-d H:i:s e', $row['time']); // 2012-07-31 23:59:59 America/Los_Angeles

在 PHP 中设置的任何时区都date_default_timezone_set()将是您在 PHP 中输​​出日期时使用的时区。

于 2012-08-01T03:36:03.367 回答
0

您可以datetime在表中使用数据类型并将其存储为NOW()将其存储为YYYY-MM-DD HHHH:MM:SS

于 2012-08-01T03:16:31.497 回答