Blueprint类的timestamp()和dateTime()方法之间的差异

问题描述 投票:5回答:3

在Laravel中,Illuminate\Database\Schema\Blueprint类有两种方法,我想具体了解它们之间的区别。

$table->dateTime() 

$table->timestamp()

两者都以明显的方式存储日期。有人开导我吗?

php mysql laravel laravel-5 timestamp
3个回答
4
投票

所以这个秘诀就是要了解每个人究竟做了什么。

Laravel中的dateTime()timestamp()函数使用不同的表格列。

dateTime()使用DATETIME作为DB列类型。 timestamp()使用TIMESTAMP作为DB列类型。

DATETIMETIMESTAMP有很多相似之处,但差异本身就在Laravel之外,在MySQL中更多。

他们的主要区别在于范围。对于DateTime来说,它最长可达9999,而时间戳只有2038。其他差异包括存储每个字节所需的字节数。

我发现了一篇很好的文章,清楚地说明了这两个http://www.c-sharpcorner.com/article/difference-between-mysql-datetime-and-timestamp-datatypes/的相同点和不同点

希望这可以帮助。


2
投票

$table->dateTime()在表格上创建一个新的日期时间列。另一方面,$table->timestamp()在表格上创建一个新的时间戳列。

如果您在确定时间戳和日期时间之间的区别时遇到问题,

DATETIME表示日期(在日历中找到)和时间(可以在挂钟上观察到)

和,

TIMESTAMP表示定义明确的时间点。如果您的应用程序处理时区,这可能非常重要。多久以前'2010-09-01 16:31:00'?这取决于你所在的时区。

此外,您可以参考BluePrint Documentation的任何不便之处。


0
投票

timestampdateTime将日期(YYYY-MM-DD)和时间(HH:MM:SS)一起存储在单个字段中,即YYYY-MM-DD HH:MM:SS。

两者之间的区别在于timestamp可以在更新数据库记录时使用CURRENT_TIMESTAMP作为其值。

timestamp的限制为1970-01-01 00:00:01 UTC to 2038-01-19 03:14:07 UTC dateTime的射程为1000-01-01 00:00:00至9999-12-31 23 :59:59 UTC

timestamps没有参数,它是将created_atupdated_at时间戳字段添加到数据库的快捷方式。

© www.soinside.com 2019 - 2024. All rights reserved.