2014-02-25 90 views
0

我有一个表Members,并且列DayJoin的类型为varchar。我想设置列的默认值DayJoin应该是当天,如果用户没有输入该字段的值。如何在mySQL中将当前日期设置为默认日期

在MSSQL服务器我写了这样一句话:

CREATE TABLE Members 
(
ID int identity (1,1) primary key, 
Email varchar(50), 
Password Varchar(50), 
Role Varchar(50) default 'Member', 
DayJoin varchar(50) DEFAULT Convert(varchar, GETDATE(),103), 
LastLogin varchar(50)DEFAULT Convert(varchar, GETDATE(),103), 
FName varchar(50), 
LName varchar(50), 
Phone varchar(50), 
DOB varchar(50), 
Gender varchar(50), 
IDcard varchar(50), 
Address varchar(50), 
City varchar(50), 
Job varchar(50), 
Avatar varchar(50) default 'images/noavatar.gif' 
) 

的语句获取当前日期和格式,它作为(DD/MM/YYYY)的值。但是,当我运行MySQL中的类似之一,它不工作

CREATE TABLE `NewTable` (
`ID` int UNSIGNED NULL AUTO_INCREMENT , 
`Email` varchar(50) NULL , 
`Password` varchar(50) NULL DEFAULT '' , 
`Role` varchar(10) NULL , 
`DayJoin` varchar(10) NULL DEFAULT 'CURRENT_TIMESTAMP' , 
`LastLogin` varchar(10) NULL DEFAULT 'date_format(now(),%Y/%m/%d)' , 
`Firstname` varchar(50) NULL , 
`Lastname` varchar(50) NULL , 
`Phone` varchar(20) NULL , 
`DOB` varchar(10) NULL , 
`Gender` varchar(20) NULL , 
`IDcard` varchar(20) NULL , 
`Address` varchar(50) NULL , 
`City` varchar(50) NULL , 
`Job` varchar(50) NULL , 
`Avatar` varchar(50) NULL DEFAULT 'images/noavatar.gif' , 
PRIMARY KEY (`ID`) 
) 
ENGINE=ARCHIVE 
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_unicode_ci 
; 

我得到回应说类似的东西; “出错的默认值”

有谁知道这个问题是什么?

+0

尝试:'DayJoin TIMESTAMP NULL DEFAULT“CURRENT_TIMESTAMP'', –

+0

可以分享你的错误信息? –

+0

这是我的错误。我使用Navicat连接到数据库。 对不起,我没有足够的东西来张贴图片。您可以通过链接查看http://i.upanh.com/viafev 问题1:我尝试过日期。 datetime,TIMESTAMP ...但这是行不通的。我显示相同的错误... 问题2:我想将其格式化为dd/mm/yy替代yyyy/mm/dd并使用斜杠(/)不是( - ) – TommyDo

回答

0

“为 'DayJoin' 无效的默认值”删除代码中'CURRENT_TIMESTAMP'附近的引号并使用TIMESTAMP数据类型。读起来像:

`DayJoin` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, 
+0

我无法删除,I使用Navicat来解决SQL查询。 CURRENT_TIMESTAMP仅适用于时间戳。我已经使用日期时间,但它不是成功的... – TommyDo

1

使用DATETIME类型,而不是:

`DayJoin` DATETIME DEFAULT CURRENT_TIMESTAMP 
+0

这是我的错误。我使用Navicat连接到数据库。 对不起,我没有足够的东西来张贴图片。您可以通过链接查看http://i.upanh.com/viafev 问题1:我尝试过日期。 datetime,TIMESTAMP ...但这是行不通的。我显示相同的错误... 问题2:我想格式化成dd/mm/yy代替yyyy/mm/dd并使用斜杠(/)不是( - ) – TommyDo

0

它会给误差

使用日期时间或时间戳数据类型 'DayJoin'

`DayJoin` TimeStamp NULL DEFAULT 'CURRENT_TIMESTAMP' , 
0

试试这个改变你DayJoin数据类型

`DayJoin` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 

`DayJoin` TimeStamp NULL DEFAULT CURRENT_TIMESTAMP 
+0

我已成功与'DayJoin' TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。 但它只允许一列使用TIMESTAMP。我如何处理Lastlogin列作为相同的默认值。 我该如何格式化它。我不想花时间,分钟和秒。 – TommyDo

+0

好的,我刚刚注册了一些分钟。我不了解这些标记...... – TommyDo

+0

@ user3349931答案中有任何错误 –

相关问题