程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL內置函數中的日期和時間函數詳解3

MySQL內置函數中的日期和時間函數詳解3

編輯:關於MYSQL數據庫

◆ 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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved