2037年后存储MySQL日期的正确方法

Hid*_*cum 4 php mysql database datetime year2038

我试图在 MySQL 中存储一个date()字段,一个连续的日期到2037 年

例如: 2065-12-01

问题是该字段正在返回: 1969-12-31

在 DB 上记录这些值的正确方法是什么?我应该使用VARCHAR吗?

date像这样计算字段的值:

 $future_date = date('Y-m-d', strtotime("+$number_years_to_add years"));
Run Code Online (Sandbox Code Playgroud)

Sha*_*dow 5

您可能使用时间戳字段来存储日期而不是日期时间字段。

请参阅有关日期时间数据类型的mysql 文档,特别是:

DATE 类型用于具有日期部分但没有时间部分的值。MySQL 以 'YYYY-MM-DD' 格式检索和显示 DATE 值。支持的范围是 '1000-01-01' 到 '9999-12-31'

DATETIME 类型用于同时包含日期和时间部分的值。MySQL 以 'YYYY-MM-DD HH:MM:SS' 格式检索和显示 DATETIME 值。支持的范围是 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'

TIMESTAMP 数据类型用于同时包含日期和时间部分的值。TIMESTAMP 的范围是'1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC