如何在phpmyadmin中编写创建表日期查询,如果没有给出日期,则默认存储当前日期?

时间:2016-04-20 03:53:04

标签: mysql sql phpmyadmin

我正在尝试使用以下查询创建一个表( 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显示错误。有人能解决这个问题吗?

3 个答案:

答案 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列的默认值

http://dev.mysql.com/doc/refman/5.5/en/create-table.html

答案 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`; 

http://sqlfiddle.com/#!9/ea673/1