修改日期類型為timestamp 并允許空,如下:
創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有十余年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗(yàn),上千家客戶的共同信賴。提供網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站開發(fā)、網(wǎng)站定制、買鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
CREATE TABLE `test` (`aaaa` varchar(50) NOT NULL,`createday` timestamp NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT
CHARSET=utf8;
如果是在navicat下操作的話,設(shè)置字段的類型為timestamp,默認(rèn)值寫上CURRENT_TIMESTAMP
擴(kuò)展資料
mysql中的時(shí)間類型:
mysql中我們用的時(shí)間類型有DATE DATETIME TIME TIMESTAMP四種:
1、DATE只表示日期,檢索以YYYY-MM-DD的格式顯示,范圍是1000-01-01到9999-12-31。
2、TIME只表示時(shí)間,檢索以HH:MM:SS格式顯示,范圍是00:00:00到23:59:59。
3、DATETIME表示了日期和時(shí)間,檢索以YYYY-MM-DD HH:MM:SS格式顯示。
4、TIMESTAMP和DATETIME表示格式一樣兩者的不同點(diǎn)如下:
當(dāng)使用timestamp的時(shí)候,數(shù)據(jù)有更新的時(shí)候這個(gè)字段自動(dòng)更新為當(dāng)前時(shí)間,所以可以作為lastmodify使用,這個(gè)變化是默認(rèn)設(shè)置,如果想使時(shí)間不更新可以設(shè)置DEFAULT CURRENT_TIMESTAMP
timestamp的范圍不能早于1970或者晚于2037,超過這個(gè)時(shí)間范圍的話為0。
timestamp存儲(chǔ)的時(shí)候是轉(zhuǎn)為UTC存儲(chǔ)的,獲取的時(shí)候根據(jù)客戶端所在時(shí)區(qū)進(jìn)行展示。
timestamp占4個(gè)字節(jié),datetime占8個(gè)字節(jié)。
通過sql語句查詢下
看看現(xiàn)在的值
show
variables
like
'%date%';
默認(rèn)的值是:
date_format=
%Y-%m-%d
datetime_format=%Y-%m-%d
%H:%i:%s
然后在mysql的配置文件my.cnf
或者
my.ini中
加入
[mysqld]
date_format=
%Y/%m/%d
datetime_format=%Y/%m/%d
%H:%i:%s
最后mysql服務(wù)器重啟即可。
-- 方法一:
由于MySQL目前字段的默認(rèn)值不支持函數(shù),所以以create_time datetime default now() 的形式設(shè)置默認(rèn)值是不可能的。代替的方案是使用TIMESTAMP類型代替DATETIME類型。
TIMESTAMP列類型自動(dòng)地用當(dāng)前的日期和時(shí)間標(biāo)記INSERT或UPDATE的操作。如果有多個(gè)TIMESTAMP列,只有第一個(gè)自動(dòng)更新。
自動(dòng)更新第一個(gè)TIMESTAMP列在下列任何條件下發(fā)生:
1.列值沒有明確地在一個(gè)INSERT或LOAD DATA INFILE語句中指定。
2.列值沒有明確地在一個(gè)UPDATE語句中指定且另外一些的列改變值。(注意一個(gè)UPDATE設(shè)置一個(gè)列為它已經(jīng)有的值,這將不引起TIMESTAMP列被更新,因?yàn)槿绻阍O(shè)置一個(gè)列為它當(dāng)前的值,MySQL為了效率而忽略更改。)
3.你明確地設(shè)定TIMESTAMP列為NULL.
4.除第一個(gè)以外的TIMESTAMP列也可以設(shè)置到當(dāng)前的日期和時(shí)間,只要將列設(shè)為NULL,或NOW()。
所以把日期類型 選擇成timestamp 允許空就可以了
CREATE TABLE test (
uname varchar(50) NOT NULL,
updatetime timestamp NULL DEFAULTCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果要在navicat下操作的話,將字段設(shè)置為timestamp,然后默認(rèn)值寫上CURRENT_TIMESTAMP即可
解決方案一:
日期前面的符號(hào)換為逗號(hào)
日期可以用mysql的方法todate
解決方案二:
MySQL 插入數(shù)據(jù) date 格式
mysql插入date類型的值
mysql插入date類型的值
解決方案三:
nsert into table (date) values ('to_date('2009-06-08 23:53:17','YYYY-DD-MM HH:MI:SS'),'
解決方案四:
數(shù)據(jù)庫中日期字段設(shè)置datetime類型 然后就可以插入對(duì)應(yīng)字符串
拓展資料
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于?Oracle?旗下產(chǎn)品。MySQL 最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件之一。
MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
1、非要用datetime的話就不能用default而要通過trigger來實(shí)現(xiàn)
2、在插入時(shí)value用now()函數(shù)、或者自行取運(yùn)行時(shí)間
3、字段類型改變?yōu)椋?/p>
datecreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
datemodified timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
但是其實(shí)不可行,因?yàn)橐粋€(gè)表只能有一個(gè)CURRENT_TIMESTAMP,但你有三個(gè)字段。
所以當(dāng)有多個(gè)時(shí)間可能還是得結(jié)合方式2與方式3來綜合處理。當(dāng)然全都用方式2也就不會(huì)提出這種問題了。
設(shè)置某字段為當(dāng)前時(shí)間,修改日期類型為timestamp并允許空,如下:
create
table
`test`
(`aaaa`
varchar(50)
not
null,`createday`
timestamp
null
default
current_timestamp
on
update
current_timestamp)
engine=innodb
default
charset=utf8;
如果是在navicat下操作的話,設(shè)置字段的類型為timestamp,默認(rèn)值寫上
current_timestamp.