【发布时间】:2015-06-20 14:11:47
【问题描述】:
我将日期存储在 timestamp 类型中(我在 PHPMyAdmin 中看到了简单的 2015-04-14 00:00:00)。傻吗?更好的方式设置为int类型并节省UNIX时间?
如何查询
select * from `values` where `time` < $mytimeinunix
因为Model::all()->where('time','<',$mytimeinunix) 不起作用。
问候
【问题讨论】:
-
第一个问题:为什么要将它们存储在
TIMESTAMP类型中?这是 MySQL 1.0 的古老遗物。为什么不DATETIME? -
我的基地不好。如果
DATETIME更好,我会使用它:) -
@tadman 什么? TIMESTAMP 字段不是古代遗物。它们在处理时区时非常方便。
-
来自the documentation:“MySQL 将 TIMESTAMP 值从当前时区转换为 UTC 进行存储,并从 UTC 转换回当前时区进行检索。”这只是一种方便的方法,并且时区处理应该在应用程序中完成,因为它可以是特定于客户端的。另外,它们是有界的,它们只能工作到 2038 年,使它们成为定时炸弹。为什么你会自愿使用它们?通常最好使用标准的
DATETIME或DATE,除非您有非常具体的原因。 -
@tadman 它们适用于各种用例。例如,Laravel 将它们用于 created_at/updated_at/deleted_at 列。
标签: php mysql laravel timestamp laravel-5