mysql中的日期和時間型別
型別位元組
最小值最大值
零值datetime
81000-01-01 00:00:00
9999-12-31 23:59:59
0000-00-00 00:00:00
date
41000-01-01
9999-12-31
0000-00-00
timestamp
419700101080001
2023年某時刻
00000000000000
time
3-838:59:59
838:59:59
00:00:00
year
11901
2155
0000
timestamp返回的格式為"yyyy-mm-dd hh:mm:ss",寬度固定為19個字元,要想獲得數字值,可以 select current_timestamp+0 的方式:
year有2位(5.5.27之前的版本有)或4位格式的年,預設是4位格式,在4位格式中,允許的值1901 ~ 2155和0000,在2位格式中,允許的值是70 ~ 69,表示1970 ~ 2069,year返回的格式為「yyyy」。
對於以上所有時間和日期型別,若想插入當前時間對應的值,可以用current_timestamp、now():
mysql中的日期時間函式
函式功能
格式curdate()
返回當前日期
2016-10-29
curtime()
返回當前時間
11:20:34
now()
返回當前的日期和時間
2016-10-29 11:21:02
unix_timestamp(date)
unix_timestamp()
返回日期date的unix時間戳
執行:select unix_timestamp()
輸出:1477711822
from_unixtime(unix_timestamp)
返回unix時間戳的日期值
執行:select from_unixtime(1477670400)
輸出:2016-10-29 11:30:22
week(date)
返回日期date為一年中的第幾周
執行:select week(curdate())
輸出:43
year(date)
返回日期date的年份
執行: select year(curdate())
輸出:2016
hour(time)
返回time的小時值
執行:select hour(curtime());
輸出:11
minute(time)
返回time的分鐘值
執行:select minute(curtime())
輸出:36
monthname(date)
返回date的月份名
執行:select monthname(curdate())
輸出october
date_format(date, format)
返回按字串format格式化日期date值
執行:select date_format(now(), '%y年%c月%e日 %t時%i分%s秒');
輸出:2023年10月29日 11:44:57時44分57秒
date_add(date,interval expr type)
返回乙個日期值加上乙個時間間隔的時間值
執行:select now() current,date_add(now(),interval 1 day) after_one_day;
輸出:2016-10-29 11:52:10 | 2016-10-30 11:52:10
datediff(expr1,expr2)
返回起始時間expr1和結束時間expr2之間的天數
執行:select datediff('2016-10-20',now());
輸出:-9
執行:select datediff(now(),'2016-10-20')
輸出:9
unix_timestamp(date)和 from_unixtime(unix_timestamp)是互逆作用的.
date_format(date,format)函式:
format字串中的格式符:
mysql中的日期和時間格式
格式符格式說明
%s和%s
兩位數字形式的秒(00, 01, ... , 59)
%i兩位數字的分(00, 01, ... , 59)
%h兩位數字形式的小時,24小時(00,01,...,23)
%h和%i
兩位數字形式的小時,24小時(01,02,...,12)
%k數字形式的小時,24小時(0,1,2,...,23)
%l數字形式的小時,12小時(1,2,...,12)
%t24小時的時間形式(hh:mm:ss)
%r12小時的時間形式(hh:mm:ssam或hh:mm:sspm)
%pam或pm
%w一周中每一天的名稱(sunday,monday,...,saturday)
%a一周中每一天的名稱縮寫(sun,mon,...,sat)
%d兩位數字表示月中的天數(00,01,...,31)
%e數字表示月中天數(1,2,...,31)
%d英文本尾表示月中的天數(1st,2nd,3rd,...)
%w數字形式表示週中的天數(0=sunday,1=monday...)
%j以3位數字表示年中天數(001,002,...,366)
%u年的周(0,1...,52),其中sunday位周第一天
%u年的周(0,1...,52),其中monday位周第一天
%m月名(january,february,...,december)
%b縮寫的月名(jan,feb,...dec)
%m兩位數字表示的月份(01,02,...,12)
%c數字表示的月份(1,2,...,12)
%y4位數字表示的年份
%y兩位數字表示的年份
%%轉義
例項:
date_add(date,interval expr type):其中interval時間隔型別關鍵字,expr是乙個表示式,對應後面的型別,type時間隔型別,其值如下表
mysql日期間隔型別
表示式型別
描述格式
hour
小時hh
minute分mm
second秒ss
year年yy
month月mm
day日
ddyear_month
年和月yy-mm
day_hour
日和小時
dd hh
day_minute
日和分鐘
dd hh:mm
day_second
日和秒dd hh:mm:ss
hour_minute
小時和分
hh:mm
hour_second
小時和秒
hh:ss
minute_second
分鐘和秒
mysql中datetime能儲存的日期範圍從2023年到2023年,精度為秒,儲存時把日期和時間封裝為yyyymmddhhmmss的格式的整數中,與時區無關,
使用8個位元組儲存。
timestamp型別能儲存的日期範圍從2023年1月1日到2023年12月31日,它儲存的是時間戳,只用了4個位元組,所以範圍比datetime小很多,
timestamp是和時區相關的。預設情況下,如果插入時沒有指定第乙個timestamp列的值,那麼mysql會預設給設定當前時間。在更新一行記錄
時,也會更新第乙個timestamp列的值為當前時間(除非指定了該列的值)
mysql時間日期 MySql 時間和日期函式
下面是mysql各種內建時間函式 1.curdate current date 用於獲取當前的日期。2.curtime current time 用於獲取現在的時鐘時間。3.now current timestamp localtime sysdate 四類函式可以獲取當前的日期和時鐘時間 4.da...
MySQL 時間日期型別
表示時間值的日期和時間型別為datetime date timestamp time和year。每個時間型別有乙個有效值範圍和乙個 零 值,當指定不合法的mysql不能表示的值時使用 零 值。timestamp型別有專有的自動更新特性。型別大小 位元組 範圍格式 用途date 31000 01 01...
MySQL時間日期型別
mysql中的 時間型別 日期和時間型別 位元組 最小值 最大值date 4 1000 01 01 9999 12 31 datetime 8 1000 01 01 00 00 00 9999 12 31 23 59 59 timestamp 4 19700101080001 2038 年的某個時刻...