将DATETIME设置为自动进入数据库表

时间:2014-03-30 02:43:21

标签: php sql

我已将数据库字段设置为DATETIME,当用户提交表单时,我想自动插入当前日期/时间戳。我该怎么做?

到目前为止,我有......

INSERT INTO expenses(user_id, amount, currency, type, description, project_id, filename)
VALUES("30","55","2","6","jult","30",DATETIME,"P")

6 个答案:

答案 0 :(得分:2)

在查询中使用NOW()代替DATETIME

<强>旁注: 此外,当您只传递 7 列时,您将面临查询错误,但您要插入 8 值。

答案 1 :(得分:1)

首先,您需要在数据库中创建一个列来存储日期时间。

其次,而不是使用“DATETIME”,使用gmdate(“Y-m-d H:i:s”)生成GMT / UTC日期时间或date()到当地时间

答案 2 :(得分:0)

您的查询中没有我认为属于DATETIME字段的字段名称,但您可以使用NOW()CURRENT_TIMESTAMPCURRENT_TIMESTAMP()

当然这是假设你正在使用MySQL。

答案 3 :(得分:0)

最简单的方法是在行上设置默认值,如果可以:

CREATE TABLE expenses (
    /* Other row definitions */
    date DATETIME DEFAULT (strftime('%s', NOW()))
);

这样你就可以完全省略insert语句中的行。

答案 4 :(得分:0)

你可以在有DATETIME的地方使用CURRENT_TIMESTAMP。

答案 5 :(得分:0)

在MySQL中,您不能使用now()之类的易失性函数作为大多数列的默认值。一个例外是timestamp列。所以create table语句可能如下所示:

create table expenses (
    . . .,
    CreatedAt timestamp default current_timestamp
);