mysql之日期函數

來源:互聯網
上載者:User

標籤:

寫在前面

mysql的學習,斷斷續續,今天就接著學習mysql的日期操作吧。

系列文章

mysql之建立資料庫,建立資料表

mysql之select,insert,delete,update

mysql之group by,order by

mysql之count,max,min,sum,avg,celing,floor

Mysql實戰

1、獲得目前時間格式yyyy-MM-dd HH:mm:ss

select now();

結果

另外一個擷取目前時間的函數是:sysdate();

區別:now() 在執行開始時值就得到了, sysdate() 在函數執行時動態得到值。

select sysdate(),sleep(3),now();

不過在實際中,sysdate()函數很少用。

 2、通過時間戳記函數也可以擷取目前時間

select current_timestamp(),current_timestamp;

3、擷取日期,年月日秒

select date(‘2015-06-27 08:33:32‘),year(‘2015-06-27 08:33:32‘),month(‘2015-06-27 08:33:32‘),day(‘2015-06-27 08:33:32‘),time(‘2015-06-27 08:33:32‘),second(‘2015-06-27 08:33:32‘);

4、日期格式化函數

date_format(date,format), time_format(time,format)

 select date_format(‘2015-08-08 22:23:01‘, ‘%Y%m%d%H%i%s‘);

日期、時間轉換函式:date_format(date,format), time_format(time,format) 能夠把一個日期/時間轉換成各種各樣的字串格式。它是 str_to_date(str,format) 函數的 一個逆轉換。

select str_to_date(‘08/08/2015‘,‘%m/%d/%Y‘);

select str_to_date(‘08/08/15‘,‘%m/%d/%Y‘);

select str_to_date(‘08.08.15‘,‘%m.%d.%Y‘);

select str_to_date(‘08:09:30‘,‘%h:%i:%s‘);

select str_to_date(‘08.09.2015 08:09:30‘, ‘%m.%d.%Y %h:%i:%s‘); 

5、(日期、天數)轉換函式:to_days(date), from_days(days)

select to_days(‘2015-06-25‘); 

select from_days(‘736139‘);

當然,有對日期,天數的操作,也有對年,月,日,時,分,秒的操作,這些等待你去發現。

select time_to_sec(‘01:00:05‘); -- 3605select sec_to_time(3605); -- ‘01:00:05‘

拼湊日期、時間函數:makdedate(year,dayofyear), maketime(hour,minute,second)

select makedate(2001,31); -- ‘2001-01-31‘select makedate(2001,32); -- ‘2001-02-01‘select maketime(12,15,30); -- ‘12:15:30‘

(Unix 時間戳記、日期)轉換函式

select unix_timestamp(); -- 1435371899select unix_timestamp(‘2015-08-08 12:30:00‘); -- ‘1439008200‘select from_unixtime(‘1435371899‘);select from_unixtime(1218124800); -- ‘2015-06-27 10:24:59.000000‘select from_unixtime(‘1439008200‘);-- ‘2015-08-08 12:30:00.000000‘select from_unixtime(1435371899, ‘%Y %D %M %h:%i:%s %x‘); -- ‘2015 27th June 10:24:59 2015‘

6、日期時間計算函數

set @dt=now();select date_add(@dt, interval 1 day); -- ‘2015-06-28 10:30:38‘ 加一天select date_add(@dt, interval 1 hour); -- ‘2015-06-27 11:32:10‘ 加一小時select date_add(@dt, interval 1 minute); -- ‘2015-06-27 10:33:33‘select date_add(@dt, interval 1 second); -- ‘2015-06-27 10:33:34‘select date_add(@dt, interval 1 microsecond);select date_add(@dt, interval 1 week);select date_add(@dt, interval 1 month);select date_add(@dt, interval 1 quarter);select date_add(@dt, interval 1 year);select date_add(@dt, interval -1 day);減一天

adddate(), addtime()函數,可以用 date_add() 來替代。

set @dt = ‘2015-08-09 12:12:33‘;select date_add(@dt,interval ‘01:15:30‘ hour_second);

從結果,更容易理解,在小時和秒上加上你設定的時間的小時和秒。

set @dt = ‘2015-08-09 12:12:33‘;select date_add(@dt,interval ‘2 01:15:30‘ day_second);

減去一個時間

set @dt = ‘2015-08-09 12:12:33‘;select date_sub(@dt,interval ‘2 01:15:30‘ day_second);

 日期、時間相減函數:datediff(date1,date2), timediff(time1,time2)

set @dt = ‘2015-08-09 12:12:33‘;set @now=now();select datediff(@now,@dt);  -- -43
set @dt = ‘2015-08-09 12:12:33‘;set @now=now();select timediff(@now,@dt);

注意:timediff(time1,time2) 函數的兩個參數類型必須相同,要麼都是yyyy-MM-dd HH:mm:ss要麼都是HH:mm:ss.

時間戳記(timestamp)轉換、增、減函數:

timestamp(date) -- date to timestamptimestamp(dt,time) -- dt + timetimestampadd(unit,interval,datetime_expr) timestampdiff(unit,datetime_expr1,datetime_expr2) 
select timestamp(‘2015-08-08‘); -- 2015-08-08 00:00:00select timestamp(‘2015-08-08 08:00:00‘, ‘01:01:01‘); -- 2015-08-08 09:01:01select timestamp(‘2015-08-08 08:00:00‘, ‘10 01:01:01‘); -- 2015-08-18 09:01:01select timestampadd(day, 1, ‘2015-08-08 08:00:00‘); -- 2015-08-09 08:00:00select date_add(‘2015-08-08 08:00:00‘, interval 1 day); -- 2015-08-09 08:00:00select timestampdiff(year,‘2002-05-01‘,‘2001-01-01‘); -- -1select timestampdiff(day ,‘2002-05-01‘,‘2001-01-01‘); -- -485select timestampdiff(hour,‘2008-08-08 12:00:00‘,‘2008-08-08 00:00:00‘); -- -12select datediff(‘2015-08-08 12:00:00‘, ‘2015-08-01 00:00:00‘); -- 7

7、時區轉換函式

convert_tz(dt,from_tz,to_tz)select convert_tz(‘2008-08-08 12:00:00‘, ‘+08:00‘, ‘+00:00‘); -- 2008-08-08 04:00:00
總結

這裡簡單介紹了,經常用到的時間操作的函數,當然,還有很多沒有顧及到,這隻能在以後在實際中,慢慢去發現了。

參考文章

http://www.cnblogs.com/ggjucheng/p/3352280.html

mysql之日期函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.