【问题标题】:MySQL: dates before 1970MySQL:1970 年之前的日期
【发布时间】:2010-12-16 23:58:20
【问题描述】:

我在一个教堂网站上工作,在1970 之前有很多活动,这些活动从1001 开始到今天,我如何将日期存储在MySQL 中?

$y = $_REQUEST["year"];
$m = $_REQUEST["month"];
$d = $_REQUEST["day"];

$date = date("Y-m-d", "$y/$m/$d");

这仅适用于1970 之后的日期,我如何存储今年之前的日期?

MySQL 中应该有什么样的数据类型?现在我已将我的列设置为date 类型

【问题讨论】:

    标签: php mysql types date


    【解决方案1】:

    DATE 很好。它可以存储值from 1000 to 9999 AD

    当您只需要一个日期值而不需要时间部分时,使用 DATE 类型。 MySQL 以 'YYYY-MM-DD' 格式检索和显示 DATE 值。支持的范围是“1000-01-01”到“9999-12-31”。

    这与 PHP 的旧式日期函数(date()strtotime()....)不同,它们适用于 UNIX 时间戳,并且在使用 32 位值时,仅限于从 1970 到 2038 的日期范围。

    要使用超出此范围的日期值,请使用 PHP 5 的 new object-oriented DateTime class

    【讨论】:

    • 没有 1000 年之前的日期?假设你想存储你的生日。耶稣会怎么做?
    • @Wouter 嘿! :) @ajreal 在他的(现已删除的)答案中有解决方案,将年份存储为单独的签名 int。我不认为DATE 可以做到这一点
    猜你喜欢
    • 2013-05-26
    • 1970-01-01
    • 2023-04-09
    • 2023-03-16
    • 1970-01-01
    • 2011-07-02
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多