我正在尝试使用以下查询创建一个表( phpMyAdmin ):
CREATE TABLE login_detail(
Id int(11) primary key auto_increment,
userName varchar(100) not null,
userPassword varchar(100) not null,
created_at Date DEFAULT CURRENT_DATE
);
但它在CURRENT_DATE
显示错误。有人能解决这个问题吗?
答案 0 :(得分:0)
不支持。
DEFAULT子句指定列的默认值。除了一个例外,默认值必须是常量;它不能是一个功能或表达。这意味着,例如,您无法将日期列的默认值设置为NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 149.1G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 140.7G 0 part /
└─sda3 8:3 0 7.9G 0 part [SWAP]
sdb 8:16 1 14.9G 0 disk
├─sdb1 8:17 1 724M 0 part
└─sdb2 8:18 1 40M 0 part /media/william/ARCHISO_EFI
sr0 11:0 1 1024M 0 rom
或sudo dd if=/dev/zero of=/dev/sdX
等函数的值。例外情况是您可以指定NOW()
作为CURRENT_DATE
列的默认值
答案 1 :(得分:0)
你只需使用当前时间戳。我在phpmyadmin.it中测试的代码正常工作
CREATE TABLE login_detail(Id int(11) primary key auto_increment, userName varchar(100) not null,userPassword varchar(100) not null, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
答案 2 :(得分:0)
请尝试以下操作:
CREATE TABLE IF NOT EXISTS `login_detail` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(100) NOT NULL,
`userPassword` varchar(100) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
INSERT INTO `login_detail` (`Id`, `userName`, `userPassword`) VALUES
(1, 'aaa', 'bbb'),
(2, 'aaa', 'bbb');
要以您想要的格式获取日期和时间DATE_FORMAT
SELECT `Id`, `userName`, `userPassword`, DATE_FORMAT(`created_at`, '%e %b %Y') AS `created_at_date`, DATE_FORMAT(`created_at`, '%H:%i:%s') AS `created_at_time` FROM `login_detail`;