2014-02-25 139 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答案中有任何錯誤 –

相關問題