我一直在努力寻找一个直接的答案,但由于某种原因,答案不是来找我。我想知道将日期/时间存储到mysql的最佳方法是什么?
我研究过mysql中的时间戳是好的,因为它也会根据时区更新。
所以我在mysql中将我的列名设置为timestamp
,datatype
为时间戳,但是存储当前日期/时间的最佳语法是什么?
"INSERT INTO table(timestamp) VALUES(now())" //or use timestamp()? or is there such thing?
请帮助,谢谢!
答案 0 :(得分:0)
您可以在表格中使用datetime
数据类型,只需将其存储为NOW()
,然后将其存储为YYYY-MM-DD HHHH:MM:SS
答案 1 :(得分:0)
以下是一些注意事项:
BIGINT
,以便存储64位时间戳time()
函数或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中输出日期时使用的时区。