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

來源:互聯網
上載者:User

下面的例子使用了時間函數。以下詢問選擇了最近的 30天內所有帶有date_col 值的記錄:

mysql> SELECT something FROM tbl_name
  -> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;

注意,這個詢問也能選擇將來的日期記錄。

用於日期值的函數通常會接受時間日期值而忽略時間部分。而用於時間值的函數通常接受時間日期值而忽略日期部分。

返回各自當前日期或時間的函數在每次詢問執行開始時計算一次。這意味著在一個單一詢問中,對諸如NOW() 的函數多次訪問總是會得到同樣的結果(未達到我們的目的,單一詢問也包括對儲存程式或觸發器和被該程式/觸發器調用的所有子程式的調用 )。這項原則也適用於 CURDATE()、 CURTIME()、 UTC_DATE()、 UTC_TIME()、UTC_TIMESTAMP(),以及所有和它們意義相同的函數。

CURRENT_TIMESTAMP()、 CURRENT_TIME()、 CURRENT_DATE()以及FROM_UNIXTIME()函數返回串連當前時區內的值,這個值可用作time_zone系統變數的值。此外, UNIX_TIMESTAMP() 假設其參數為一個當前時區的時間日期值。

以下函數的論述中傳回值的範圍會請求完全日期。 若一個日期為“零” 值,或者是一個諸如'2001-11-00'之類的不完全日期, 提取部分日期值的函數可能會返回 0。 例如, DAYOFMONTH('2001-11-00') 會返回0。

ADDDATE(date,INTERVAL expr type) ADDDATE(expr,days)

當被第二個參數的INTERVAL格式啟用後, ADDDATE()就是DATE_ADD()的同義字。相關函數SUBDATE() 則是DATE_SUB()的同義字。對於INTERVAL參數上的資訊 ,請參見關於DATE_ADD()的論述。

mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
-> '1998-02-02'
mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
-> '1998-02-02'

若 days 參數只是整數值,則 MySQL 5.1將其作為天數值添加至 expr。

mysql> SELECT ADDDATE('1998-01-02', 31);
-> '1998-02-02'

◆ ADDTIME(expr,expr2)

ADDTIME()將 expr2添加至expr 然後返回結果。 expr 是一個時間或時間日期運算式,而expr2 是一個時間運算式。

mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999',
->                '1 1:1:1.000002');
-> '1998-01-02 01:01:01.000001'
mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
-> '03:00:01.999997'

◆ CONVERT_TZ(dt,from_tz,to_tz)

CONVERT_TZ() 將時間日期值dt 從from_tz 給出的時區轉到to_tz給出的時區,然後返回結果值。

在從若from_tz 到UTC的轉化過程中,該值超出 TIMESTAMP 類型的被支援範圍,那麼轉化不會發生。

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
-> '2004-01-01 13:00:00'
mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
-> '2004-01-01 22:00:00'

注釋:若要使用諸如 'MET'或 'Europe/Moscow'之類的指定時間區,首先要設定正確的時區表。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.