如何为MySQL Datetime列设置默认值?
在SQL Server中它是getdate().什么是MySQL的等价物?如果这是一个因素,我正在使用MySQL 5.x.
我在表用户中有两列,registerDate and lastVisitDate它们包含日期时间数据类型.我想做以下几点.
0000-00-00 00:00:00使用的null而不是null.因为表已经存在并且有现有记录,所以我想使用Modify表.我尝试过使用下面的两段代码,但都不行.
ALTER TABLE users MODIFY registerDate datetime DEFAULT NOW()
ALTER TABLE users MODIFY registerDate datetime DEFAULT CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)
它给了我错误: ERROR 1067 (42000): Invalid default value for 'registerDate'
我可以在MySQL中将默认日期时间值设置为NOW()吗?
我正在尝试使用phpmyadmin sql console创建下表:
CREATE TABLE dates
(
id int NOT NULL,
id_date datetime NOT NULL DEFAULT CURDATE(),
PRIMARY KEY (id)
)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:

它以红色显示"CURDATE()",所以我猜这就是问题所在.
谁能帮到我这里?
在创建表时,我收到以下错误:
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Run Code Online (Sandbox Code Playgroud)
问题是,我实际上没有两列TIMESTAMP同CURRENT_TIMESTAMP为默认值,无论我使用ON UPDATE条款.
我正在尝试执行的DDL查询是
CREATE TABLE user(
/* Basic Information */
id INT NOT NULL AUTO_INCREMENT,
firstname VARCHAR(255) NOT NULL,
surname VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
username VARCHAR(255) NOT NULL UNIQUE,
password CHAR(40) NOT NULL,
/* System status information */
active BOOL NOT NULL DEFAULT FALSE,
validated BOOL NOT NULL …Run Code Online (Sandbox Code Playgroud)