如何自动将当前系统时间存储在MySQL的记录生成中?

时间:2015-07-22 20:38:30

标签: php mysql sql datetime

我正在为应用程序创建数据库。相关表格将是通过应用程序进行的所有购买的日志,表格中的一列将存储当前日期和时间。时间以DATETIME()(YYYY-MM-DD HH-MM-SS格式)。

我知道SQL函数Now()以这种格式返回当前系统日期和时间,但是我可以创建表格以便每次新购买自动存储当前系统时间吗?我正在尝试做这样的事情:

CREATE TABLE purchase_log (
//bunch of code
timestamp DATETIME() NOT NULL DEFAULT Now(),
//more code
);

因此默认情况下,每个进入purchase_log的条目都会自动存储Now()返回的值,但我不认为这是有效的SQL语法。最好的方法是什么?

谢谢!

3 个答案:

答案 0 :(得分:2)

CREATE TABLE  purchase_log (
`addedwhen` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) 

我使用了字段名"添加了"作为"时间戳"是一个MySQL保留字。

答案 1 :(得分:1)

  

但我不认为这是有效的SQL语法。

如何?它绝对有效;你真的尝试过那个吗?如果没有,请参阅此处http://sqlfiddle.com/#!9/e0b1a7/1

CREATE TABLE purchase_log (order_id int not null, 
order_name varchar(10),
orderdate DATETIME NOT NULL DEFAULT Now()
);

insert into purchase_log(order_id, order_name) values(1,'laptop');

答案 2 :(得分:0)

将字段的默认值添加为CURRENT_TIMESTAMP。 但是,在将数据插入表中时,您需要小心。要么将NULL传递给字段,要么确保正确的时间戳。