在Laravel中,Illuminate\Database\Schema\Blueprint
类有两种方法,我想具体了解它们之间的区别。
$table->dateTime()
和
$table->timestamp()
两者都以明显的方式存储日期。有人开导我吗?
所以这个秘诀就是要了解每个人究竟做了什么。
Laravel中的dateTime()
和timestamp()
函数使用不同的表格列。
dateTime()
使用DATETIME作为DB列类型。 timestamp()
使用TIMESTAMP作为DB列类型。
DATETIME
和TIMESTAMP
有很多相似之处,但差异本身就在Laravel之外,在MySQL中更多。
他们的主要区别在于范围。对于DateTime来说,它最长可达9999
,而时间戳只有2038
。其他差异包括存储每个字节所需的字节数。
我发现了一篇很好的文章,清楚地说明了这两个http://www.c-sharpcorner.com/article/difference-between-mysql-datetime-and-timestamp-datatypes/的相同点和不同点
希望这可以帮助。
$table->dateTime()
在表格上创建一个新的日期时间列。另一方面,$table->timestamp()
在表格上创建一个新的时间戳列。
如果您在确定时间戳和日期时间之间的区别时遇到问题,
DATETIME表示日期(在日历中找到)和时间(可以在挂钟上观察到)
和,
TIMESTAMP表示定义明确的时间点。如果您的应用程序处理时区,这可能非常重要。多久以前'2010-09-01 16:31:00'?这取决于你所在的时区。
此外,您可以参考BluePrint Documentation的任何不便之处。
timestamp
和dateTime
将日期(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_at
和updated_at
时间戳字段添加到数据库的快捷方式。