一、日期相關的資料型別
1、datetime
占用8位元組,既顯示了日期,又顯示了時間。其表示的日期範圍為「1000-01-01 00:00:00」到「9999-12-31 23:59:59」
2、date
占用3個位元組,可顯示的日期範圍「1000-01-01」到「9999-12-31」
3、timestamp
和datetime顯示結果一樣,都是固定的「yyyy-mm-dd 00:00:00「。不同的是timestamp占用4個位元組,顯示範圍為」1970-01-01 00:00:00」utc到「2038-01-19 03:14:07「utc。其實際儲存的內容為」1970-01-01 00:00:00」到當前時間的毫秒數。在新建表時,列為timestamp型別可以設定乙個預設值,而datetime不行。在更新表時,可以設定timestamp型別的列自動更新時間為當前時間 如下
新建表
create table score (
id int(10) not null primary key,
bz2 timestamp default current_timestamp
)插入一條資料,不對timestamp型別插入
insert into score (id) values (1)
執行結果如下:timestamp型別自動賦預設值,我們設定的預設值為current_timestamp
更新表
create table score (
id int(10) not null primary key,
bz2 timestamp on update current_timestamp
)insert into score (id,bz2) values (1,current_timestamp)
結果如下
執行update語句 : update score set id=2
可以看到bz2的時間自動變為更新表的當前時間
4、year
year型別占用1位元組,並且可以在定義的時候指定顯示的寬度為year(4)或者year(2)。year(4)顯示的範圍為1901-2070,year(2)的顯示範圍為1970-2070,該設定下,00-69代表2000-2069,代表最近的年份
5、time
佔3個位元組,顯示範圍為」-838:59:59「-」838:59:59「。為什麼time的型別可以大於23,可以為負值,這是因為time不僅可以用來儲存一天中的時間,還可以儲存時間的間隔。
二、日期相關的函式
1、now(),current_timestamp(),sysdate()
執行sql語句:select now(),current_timestamp(),sysdate(),結果如下:
這樣,看不出三個有什麼區別,然後執行下面的sql語句:
select sleep(2), now(),current_timestamp(),sysdate();其中,sleep(2)代表執行等待2秒
結果如下:
可以看出,now(),current_timestamp()這兩個函式結果相同,它們等價,指的是sql開始執行的時間
而sysdate()的結果晚了兩秒,代表執行該函式時候的當前時間。
2、時間加減的函式
直接進行now()+1會返回給你乙個數字而不是日期,如下:select now()+1
那麼如何在now的基礎上加上一天或者減去一天,這就要用到date_add(date, interval 1 day),date_sub(date, interval 1 day)函式。
用法如下:select now() as today,
date_add(now(), interval 1 day) as tomorrow,
date_sub(now(), interval 1 day) as yestoday
結果如下:
在函式中使用的是day作為間隔時間,也可以使用year,month,week,hour,minute,second等
3、date_format()函式
其作用是按照使用者需求格式化列印日期
select date_format(now(),'%y%m%d')
其中%y代表4位的year,%y代表2位的year;%m代表2位的month;%d代表2位的day。其中,%y,%m,%d之間可以新增任何的字元已達到自己目標。上述格式輸出20130915,如果設為』%y:%m:%d',則輸出2013:09:15,如果設為為』%y/%m/%d',則輸出2013/09/15
mysql 關於日期時間的字段型別
mysql有5種表示時間值的日期和時間型別,分別為 date,time,year,datetime,timestamp。timestamp型別有專有的自動更新特性,timestamp型別有專有的自動更新特性,timestamp型別有專有的自動更新特性,型別大小 位元組 範圍格式 用途date 310...
mysql 關於日期時間的字段型別
mysql有5種表示時間值的日期和時間型別,分別為 date,time,year,datetime,timestamp。timestamp型別有專有的自動更新特性,timestamp型別有專有的自動更新特性,timestamp型別有專有的自動更新特性,型別大小 位元組 範圍格式 用途date 310...
Mysql中的日期與時間
mysql中有5種表示日期和時間的型別 下面一一介紹 tear型別 用乙個位元組來表示年份,範圍是1901 2155,形式是yyyy。可以用now current date,current time來得到。time型別 三個位元組來表示時間,hh mm ss,注意time範圍是 838 838,不是...