我已将数据库字段设置为DATETIME
,当用户提交表单时,我想自动插入当前日期/时间戳。我该怎么做?
到目前为止,我有......
INSERT INTO expenses(user_id, amount, currency, type, description, project_id, filename)
VALUES("30","55","2","6","jult","30",DATETIME,"P")
答案 0 :(得分:2)
在查询中使用NOW()
代替DATETIME
。
<强>旁注:强> 此外,当您只传递 7 列时,您将面临查询错误,但您要插入 8 值。
答案 1 :(得分:1)
答案 2 :(得分:0)
您的查询中没有我认为属于DATETIME
字段的字段名称,但您可以使用NOW()
,CURRENT_TIMESTAMP
或CURRENT_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
);