2014-09-04 92 views
4

這是表結構,MySQL的插入當前日期,只有在插入時

id    int 
name   varchar 
insert_date date 
update_date TIMESTAMP 

現在,這裏的IDIA是,insert_date將能夠defult當前時間&的UPDATE_DATE它會插入當前插入在每次編輯或插入時都會更新它。

所以我怎樣才能使(insert_date)默認值當前時間和日期,但在更新它不應該改變(insert_date)的值,如果我保持它TIMESTAMP更新它將會改變。

insert_date - 插入當前時間,只有在插入只是一個時間

問候

回答

0

使用DATETIME,如果你想用型功能NOW()要存儲日期和時間,並且您可以選擇CURRENT_TIMESTAMP作爲默認值或使用NOW()獲取當前日期和時間(yyyy-mm-dd小時:分鐘:秒)。

1

如果您想保留默認的當前日期&時間的手段,要改變

insert_date data type date to datetime 

而且插入像

Insert into tbl(insert_date) values(now()) 

$date=date('Y-m-d H:i:s') 

Insert into tbl(insert_date) values('$date') 

讀它

How do you set a default value for a MySQL Datetime column?

1

如果你想只添加時間..你需要使用

CURTIME()

,如果你想當前日期和時間......

NOW()

如果您只想要當前日期...

CURDATE()

更多的在這裏..

下面的SELECT語句:SELECT NOW(),CURDATE(),CURTIME()

會導致這樣的事情: NOW( )CURDATE()CURTIME() 2008-11-11 12:45:34 2008-11-11 12:45:34

根據需要選擇格式。

2

使用DEFAULT CURRENT_TIMESTAMP用於插入

使用ON UPDATE CURRENT_TIMESTAMP用於更新

像下面

CREATE TABLE IF NOT EXISTS `datetest` (
     `id` int(11) NOT NULL AUTO_INCREMENT, 
     `name` varchar(100) NOT NULL, 
     `timestamps_updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, 
     `timestamps_inserted` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' DEFAULT CURRENT_TIMESTAMP, 

     PRIMARY KEY (`id`) 
    )