我在数据库表中有一个 timestamp
列。保存值:
UPDATE `table` SET `activated_at` = CURRENT_TIMESTAMP WHERE `id` = 123;
工作正常。
但是当我使用 php 函数 time()
获取时间戳时,它不起作用。它只能使用 date('Y-m-d H:i:s')
作为列值。问题是为什么?
列定义是:
`activated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
我正在使用 php mysql 扩展(是的,我知道它已被弃用,但我必须维护一些遗留代码)
最佳答案
自 time()在 php 中返回一个 unix 时间戳,时间戳是一种日期时间类型,它需要一个有效的日期时间值。如果你没有提供有效的日期时间值,它将像 0000-00-00 00:00:00
一样存储.如果您想将字段保留为日期时间类型,那么您必须在 php 中提供 date('Y-m-d H:i:s')
同时检查 documention of various date time mysql 中的类型
关于php - 为什么我不能将 php time() 用于时间戳列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19660457/