◆ DAY(date)
DAY() 和DAYOFMONTH()的意義相同。
◆ DAYNAME(date)
返回date 對應的工作日名稱。
MySQL> SELECT DAYNAME('1998-02-05');
-> '周四'
◆ DAYOFMONTH(date)
返回date 對應的該月日期,范圍是從 1到31。
MySQL> SELECT DAYOFMONTH('1998-02-03');
-> 3
◆ DAYOFWEEK(date)
返回date (1 = 周日, 2 = 周一, ..., 7 = 周六)對應的工作日索引。這些索引值符合 ODBC標准。
MySQL> SELECT DAYOFWEEK('1998-02-03');
-> 3
◆ DAYOFYEAR(date)
返回date 對應的一年中的天數,范圍是從 1到366。
MySQL> SELECT DAYOFYEAR('1998-02-03');
-> 34
◆ EXTRACT(type FROM date)
EXTRACT()函數所使用的時間間隔類型說明符同 DATE_ADD()或DATE_SUB()的相同,但它從日期中提取其部分,而不是執行日期運算。
MySQL> SELECT EXTRACT(YEAR FROM '1999-07-02');
-> 1999
MySQL> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');
-> 199907
MySQL> SELECT EXTRACT(DAY_MINUTE FROM '1999-07-02 01:02:03');
-> 20102
MySQL> SELECT EXTRACT(MICROSECOND
-> FROM '2003-01-02 10:30:00.00123');
-> 123
◆ FROM_DAYS(N)
給定一個天數 N, 返回一個DATE值。
MySQL> SELECT FROM_DAYS(729669);
-> '1997-10-07'
使用 FROM_DAYS()處理古老日期時,務必謹慎。他不用於處理陽歷出現前的日期(1582)。請參見12.6節,“MySQL使用什麼日歷?”。
◆ FROM_UNIXTIME(unix_timestamp) , FROM_UNIXTIME(unix_timestamp,format)
返回'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS 格式值的unix_timestamp參數表示,具體格式取決於該函數是否用在字符串中或是數字語境中。
若format 已經給出,則結果的格式是根據format 字符串而定。 format 可以包含同DATE_FORMAT() 函數輸入項列表中相同的說明符。
MySQL> SELECT FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
MySQL> SELECT FROM_UNIXTIME(875996580) + 0;
-> 19971004222300
MySQL> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
-> '%Y %D %M %h:%i:%s %x');
-> '2003 6th August 06:22:58 2003'
◆ GET_FORMAT(DATETIMEDATETIME, 'EUR''USA''JIS''ISO''INTERNAL')
返回一個格式字符串。這個函數在同DATE_FORMAT() 及STR_TO_DATE()函數結合時很有用。
第一個參數的3個可能值和第二個參數的5個可能值產生 15 個可能格式字符串 (對於使用的說明符,請參見DATE_FORMAT()函數說明表 )。
ISO 格式為ISO 9075, 而非ISO 8601.
也可以使用TIMESTAMP, 這時GET_FORMAT()的返回值和DATETIME相同。
MySQL> SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR'));
-> '03.10.2003'
MySQL> SELECT STR_TO_DATE('10.31.2003',GET_FORMAT(DATE,'USA'));
-> '2003-10-31'
◆ HOUR(time)
返回time 對應的小時數。對於日時值的返回值范圍是從 0 到 23 。
MySQL> SELECT HOUR('10:05:03');
-> 10
然而, TIME 值的范圍實際上非常大, 所以HOUR可以返回大於23的值。
MySQL> SELECT HOUR('272:59:59');
-> 272
◆ LAST_DAY(date)
獲取一個日期或日期時間值,返回該月最後一天對應的值。若參數無效,則返回NULL。
MySQL> SELECT LAST_DAY('2003-02-05');
-> '2003-02-28'
MySQL> SELECT LAST_DAY('2004-02-05');
-> '2004-02-29'
MySQL> SELECT LAST_DAY('2004-01-01 01:01:01');
-> '2004-01-31'
MySQL> SELECT LAST_DAY('2003-03-32');
-> NULL
◆ LOCALTIME, LOCALTIME()
LOCALTIME 及 LOCALTIME()和NOW()具有相同意義。
◆ LOCALTIMESTAMP, LOCALTIMESTAMP()
LOCALTIMESTAMP和LOCALTIMESTAMP()和NOW()具有相同意義。
◆ MAKEDATE(year,dayofyear)
給出年份值和一年中的天數值,返回一個日期。dayofyear 必須大於 0 ,否則結果為 NULL。
MySQL> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
-> '2001-01-31', '2001-02-01'
MySQL> SELECT MAKEDATE(2001,365), MAKEDATE(2004,365);
-> '2001-12-31', '2004-12-30'
MySQL> SELECT MAKEDATE(2001,0);
-> NULL
◆ MAKETIME(hour,minute,second)
返回由hour、 minute和second 參數計算得出的時間值。
MySQL> SELECT MAKETIME(12,15,30);
-> '12:15:30'
◆ MICROSECOND(expr)
從時間或日期時間表達式expr返回微秒值,其數字范圍從 0到 999999。
MySQL> SELECT MICROSECOND('12:00:00.123456');
-> 123456
MySQL> SELECT MICROSECOND('1997-12-31 23:59:59.000010');
-> 10
◆ MINUTE(time)
返回 time 對應的分鐘數,范圍是從 0 到 59。
MySQL> SELECT MINUTE('98-02-03 10:05:03');
-> 5
◆ MONTH(date)
返回date 對應的月份,范圍時從 1 到 12。
MySQL> SELECT MONTH('1998-02-03');
-> 2
◆ MONTHNAME(date)
返回date 對應月份的全名。
MySQL> SELECT MONTHNAME('1998-02-05');
-> 'February '
◆ NOW()
返回當前日期和時間值,其格式為 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS , 具體格式取決於該函數是否用在字符串中或數字語境中。
MySQL> SELECT NOW();
-> '1997-12-15 23:50:26'
MySQL> SELECT NOW() + 0;
-> 19971215235026
在一個存儲程序或觸發器內, NOW() 返回一個常數時間,該常數指示了該程序或觸發語句開始執行的時間。這同SYSDATE()的運行有所不同。
◆ PERIOD_ADD(P,N)
添加 N 個月至周期P (格式為YYMM 或YYYYMM),返回值的格式為 YYYYMM。注意周期參數 P 不是日期值。
MySQL> SELECT PERIOD_ADD(9801,2);
-> 199803