我正在为应用程序创建数据库。相关表格将是通过应用程序进行的所有购买的日志,表格中的一列将存储当前日期和时间。时间以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语法。最好的方法是什么?
谢谢!
答案 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传递给字段,要么确保正确的时间戳。