MySQL日期時間函式大全

2021-08-30 20:15:23 字數 4924 閱讀 4352

對於每個型別擁有的值範圍以及並且指定日期何時間值的有效格式的描述見7.3.6 日期和時間型別。 

這裡是乙個使用日期函式的例子。下面的查詢選擇了所有記錄,其date_col的值是在最後30天以內: 

mysql> select something from table 

where to_days(now()) - to_days(date_col) <= 30; 

dayofweek(date) 

返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。這些索引值對應於odbc標準。 

mysql> select dayofweek('1998-02-03'); 

-> 3 

weekday(date) 

返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。 

mysql> select weekday('1997-10-04 22:23:00'); 

-> 5 

mysql> select weekday('1997-11-05'); 

-> 2 

dayofmonth(date) 

返回date的月份中日期,在1到31範圍內。 

mysql> select dayofmonth('1998-02-03'); 

-> 3 

dayofyear(date) 

返回date在一年中的日數, 在1到366範圍內。 

mysql> select dayofyear('1998-02-03'); 

-> 34 

month(date) 

返回date的月份,範圍1到12。 

mysql> select month('1998-02-03'); 

-> 2 

dayname(date) 

返回date的星期名字。 

mysql> select dayname("1998-02-05"); 

-> 'thursday' 

monthname(date) 

返回date的月份名字。 

mysql> select monthname("1998-02-05"); 

-> 'february' 

quarter(date) 

返回date一年中的季度,範圍1到4。 

mysql> select quarter('98-04-01'); 

-> 2 

week(date) 

week(date,first) 

對於星期天是一周的第一天的地方,有乙個單個引數,返回date的週數,範圍在0到52。2個引數形式week()允許

你指定星期是否開始於星期天或星期一。如果第二個引數是0,星期從星期天開始,如果第二個引數是1,

從星期一開始。 

mysql> select week('1998-02-20'); 

-> 7 

mysql> select week('1998-02-20',0); 

-> 7 

mysql> select week('1998-02-20',1); 

-> 8 

year(date) 

返回date的年份,範圍在1000到9999。 

mysql> select year('98-02-03'); 

-> 1998 

hour(time) 

返回time的小時,範圍是0到23。 

mysql> select hour('10:05:03'); 

-> 10 

minute(time) 

返回time的分鐘,範圍是0到59。 

mysql> select minute('98-02-03 10:05:03'); 

-> 5 

second(time) 

回來time的秒數,範圍是0到59。 

mysql> select second('10:05:03'); 

-> 3 

period_add(p,n) 

增加n個月到階段p(以格式yymm或yyyymm)。以格式yyyymm返回值。注意階段引數p不是日期值。 

mysql> select period_add(9801,2); 

-> 199803 

period_diff(p1,p2) 

返回在時期p1和p2之間月數,p1和p2應該以格式yymm或yyyymm。注意,時期引數p1和p2不是日期值。 

mysql> select period_diff(9802,199703); 

-> 11 

date_add(date,interval expr type) 

date_sub(date,interval expr type) 

adddate(date,interval expr type) 

subdate(date,interval expr type) 

time_format(time,format) 

這象上面的date_format()函式一樣使用,但是format字串只能包含處理小時、分鐘和秒的那些格式修飾符。

其他修飾符產生乙個null值或0。 

curdate() 

current_date 

以'yyyy-mm-dd'或yyyymmdd格式返回今天日期值,取決於函式是在乙個字串還是數字上下文被使用。 

mysql> select curdate(); 

-> '1997-12-15' 

mysql> select curdate() + 0; 

-> 19971215 

curtime() 

current_time 

以'hh:mm:ss'或hhmmss格式返回當前時間值,取決於函式是在乙個字串還是在數字的上下文被使用。 

mysql> select curtime(); 

-> '23:50:26' 

mysql> select curtime() + 0; 

-> 235026 

now() 

sysdate() 

current_timestamp 

以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回當前的日期和時間,取決於函式是在乙個字串還是在數字的

上下文被使用。 

mysql> select now(); 

-> '1997-12-15 23:50:26' 

mysql> select now() + 0; 

-> 19971215235026 

unix_timestamp() 

unix_timestamp(date) 

如果沒有引數呼叫,返回乙個unix時間戳記(從'1970-01-01 00:00:00'gmt開始的秒數)。如果unix_timestamp()用一

個date引數被呼叫,它返回從'1970-01-01 00:00:00' gmt開始的秒數值。date可以是乙個date字串、乙個datetime

字串、乙個timestamp或以yymmdd或yyyymmdd格式的本地時間的乙個數字。 

mysql> select unix_timestamp(); 

-> 882226357 

mysql> select unix_timestamp('1997-10-04 22:23:00'); 

-> 875996580 

當unix_timestamp被用於乙個timestamp列,函式將直接接受值,沒有隱含的「string-to-unix-timestamp」變換。 

from_unixtime(unix_timestamp) 

以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回unix_timestamp引數所表示的值,取決於函式是在乙個字串

還是或數字上下文中被使用。 

mysql> select from_unixtime(875996580); 

-> '1997-10-04 22:23:00' 

mysql> select from_unixtime(875996580) + 0; 

-> 19971004222300 

from_unixtime(unix_timestamp,format) 

返回表示 unix 時間標記的乙個字串,根據format字串格式化。format可以包含與date_format()函式列出的條

目同樣的修飾符。 

mysql> select from_unixtime(unix_timestamp(), 

'%y %d %m %h:%i:%s %x'); 

-> '1997 23rd december 03:43:30 x' 

sec_to_time(seconds)

返回seconds引數,變換成小時、分鐘和秒,值以'hh:mm:ss'或hhmmss格式化,取決於函式是在乙個字串還是在數字

上下文中被使用。 

mysql> select sec_to_time(2378); 

-> '00:39:38' 

mysql> select sec_to_time(2378) + 0; 

-> 3938 

time_to_sec(time)

返回time引數,轉換成秒。 

mysql> select time_to_sec('22:23:00'); 

-> 80580 

mysql> select time_to_sec('00:39:38'); 

-> 2378

MySQL日期時間函式大全

mysql日期格式化 format 取值範圍。值含義 秒 s s 兩位數字形式的秒 00,01,59 分 i i 兩位數字形式的分 00,01,59 小時 h 24小時制,兩位數形式小時 00,01,23 h12小時制,兩位數形式小時 00,01,12 k24小時制,數形式小時 0,1,23 l12...

mysql日期函式,時間函式大全

獲得當前日期函式 date now 獲得當前時間函式 time now 獲得當前日期 時間 date time 函式 sysdate mysql 獲得當前時間戳函式 current timestamp,current timestamp 把日期時間轉化為字串格式 date format date,f...

Mysql日期和時間函式大全

code mysql日期和時間函式大全 date format date,format 根據format字串格式化date值。下列修飾符可以被用在 format字串中 m 月名字 january december w 星期名字 sunday saturday d 有英語字首的月份的日期 1st,2n...