【问题标题】:Adding an automatic date field to MYSQL database using stored procedure使用存储过程将自动日期字段添加到 MYSQL 数据库
【发布时间】:2019-09-03 05:49:10
【问题描述】:

我有一个名为 entry 的表。

表格有 2 列称为 id & name

当用户填写姓名时,提交姓名保存在条目表中。

现在我也想保存日期。但是这个日期需要自动填入数据库。即填写名称时,我选择的国家/地区的当前时区应自动保存在表格中。

我已经在 table 中创建了日期列。现在我该怎么做?是否有任何存储过程可以帮助解决这个问题?

我无法在我的 php 文件中编写任何查询。它应该在 mysql 端完成。

请帮忙

【问题讨论】:

标签: mysql sql stored-procedures


【解决方案1】:

您也可以使用trigger。使用after insert,这样每当您添加记录时,它都会自动更新日期。

我不是普通的mysql 用户,所以语法可能不同,但你会明白的。请找到链接以获取更多信息。 TRIGGER.

CREATE TRIGGER inserttable 
AFTER INSERT 
ON table1 
FOR EACH ROW 
   NEW.DATECOL = (SELECT CURDATE());
END

如果存在任何语法问题,请随时编辑此代码。

【讨论】:

    【解决方案2】:

    一般来说,创建日期/时间可以通过使用默认值的表定义来处理:

    create table t (
        . . . , 
        created_at timestamp default current_timestamp
    );
    

    这比为此目的定义触发器要简单得多。

    请注意,这会存储日期和时间值。我不认为 MySQL 让你只存储时间。但是因为您提到了时区,所以这可能是您真正想要的。

    【讨论】:

    • 但该表之前已经创建,并且 table 中有一些条目。对于上一个条目,日期将像 00.00.000 这样。所以请检查。我只需要存储 date ,即使时间为零
    猜你喜欢
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多