如何在mysql中将元素设置为某个默认日期?
在oracle中我们会做类似
的事情start_date DATE DEFAULT to__date('01011900','DDMMYYYY')
mutation_date_time DATE DEFAULT SYSDATE
CONSTRAINT entity_specification UNIQUE(external_name,start_date_time,end_date_time))
我们还有任何网站或资源,我们可以在其中获得与Oracle语法相同的MySQL语法。
更新
我尝试按照回答中提到的那样做,但又收到了错误消息:
create table product_offer_type(object_id INT(19), snapshot_id INT(19), PRIMARY KEY(object_id,snapshot_id), enum_value VARCHAR(64) NOT NULL, external_name VARCHAR(64) NOT NULL, description VARCHAR(255), business_validation INT(1), valid_for_start_date_time DATE DEFAULT '1900-01-10', valid_for_end_date_timeDATE DEFAULT '4712-01-01', mutation_date_time DATE DEFAULT 'SYSDATE()', mutation_user VARCHAR(32) DEFAULT 'USER');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT '4712-01-01', mutation_date_time DATE DEFAULT 'SYSDATE()', mutation_user' at line 1
mysql>
答案 0 :(得分:2)
只需传递一个格式化的字符串。
start_date DATE DEFAULT '1900-01-01'
答案 1 :(得分:2)
对于DATE字段的固定默认日期,格式为“YYYY-MM-DD”,如start_date DATE DEFAULT '2009-10-30'
。 DATETIME将是'YYYY-MM-DD HH:MM:SS'。
对于基于当前日期的动态日期,如果使用TIMESTAMP字段,则可以使用DEFAULT CURRENT_TIMESTAMP;否则,在MySQL中无法使用函数作为DEFAULT。 TIMESTAMP字段格式为'YYYY-MM-DD HH:MM:SS'。否则,在插入数据之前,您必须在代码中获取当前日期。