常用的mysql日期函數

怪我咯
發布: 2017-03-31 10:19:05
原創
1567 人瀏覽過

因為快要畢業了,也去過幾家公司面試,其中去過一家面試PHP開發的,有道sql有優化題,當時對mysql 函數並沒有研究和系統的學習,囧。 。 。
mysql有主要的內建函數如下:

NOW()
傳回目前的日期和時間

CURDATE()
傳回目前的日期

CURTIME()
傳回目前的時間

DATE()
擷取日期或日期/時間表達式的日期部分

EXTRACT()
傳回日期/時間按的單獨部分

#DATE_ADD()
為日期新增指定的時間間隔


DATE_SUB()
從日期減去指定的時間間隔


DATEDIFF()
傳回兩個日期之間的天數


DATE_FORMAT()
以不同的格式顯示日期/時間


也包含一些傳回日期的各個部分函數:
選取日期時間的各個部分:日期、時間、年、季、月、日、小時、分鐘、秒、微秒
set @dt = '2008-09-10 07:15 :30.123456';

select date(@dt); -- 2008-09-10
select time(@dt); -- 07:15:30.123456
select year(@dt) ; -- 2008
select quarter(@dt); -- 3
select month(@dt); -- 9
select week(@dt); -- 36
select day(@ dt); -- 10
select hour(@dt); -- 7
select minute(@dt); -- 15
select second(@dt); -- 30
select microsecond (@dt); -- 123456
這些函數對日期的比較有很大的幫助,很多新手在處理日期函數的時候不太會處理,容易出錯,下面舉個例子吧:
假如有個表product有個字段add_time,它的資料類型為datetime,有人可能會這樣寫sql:
select * from product where add_time = '2013-01-12'
對於這種語句,如果你儲存的格式是YY-mm-dd是這樣的,那麼OK,如果你儲存的格式是:2013-01-12 23:23:56這種格式你就悲劇了,這是你就可以使用DATE()函數用來傳回日期的部分,所以這條sql應該要如下處理:
select * from product where Date(add_time) = '2013-01-12'
再來一個,如果你要查詢2013年1月份加入的產品呢?
select * from product where date(add_time) between '2013-01-01' and '2013-01-31'
你還可以這樣寫:
select * from product where Year(add_time) =#你還可以這樣寫:
select * from product where Year(add_time) = 2013 and Month(add_time) = 1

這些你該知道mysql日期函數在對你處理日期比較問題的作用了吧?

####

以上是常用的mysql日期函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!