MySql 常用日期時間函式總結

2021-08-02 18:48:52 字數 2932 閱讀 8536

/**/

select date_add(

'2011-01-01

',interval 

30day),date_add(

'2011-01-01

',interval  -1

day),adddate(

'2011-01-01

',interval 

30day),adddate(

'2011-01-01

', 30),date_sub(

'2011-01-01

',interval 

1day),subdate(

'2011-01-01

',interval 

1day); --

時間操作

select addtime(

'2011-01-01 00:00:00

', '

1:05:33

'),addtime(

'00:00:00

', '

1:05:33

');

--獲取當前日期,+0以後會去掉分割線,current_date和curdate是同義詞

select curdate() ,curdate() 

+0,current_date(); --

獲取當前時間,curtime和current_time是同義詞

select curtime(),

current_time(),

current_time()

+0; --

查詢當前的伺服器時區和當前連線的時區,當前連線的時區初使值與全域性變數time_zone相同,但可以用下面的語句重設:set time_zone = timezone;

select

@@global.time_zone, 

@@session.time_zone; --

指定時區轉換

select convert_tz(

'2004-01-01 12:00:00

', '

+08:00

', '

+00:00

');

--獲取當前日期和時間,current_timestamp和now是同義詞

select

current_timestamp(),now(),now()

+0,current_timestamp()

+0; --

提取日期或時間日期表示式expr中的日期部分。 

select date(

'2003-12-31 01:02:03

');

--datediff(expr,expr) ,返回expr減去expr2之間的天數。expr和expr2 為日期或 date-and-time 表示式。計算中只用到這些值的日期部分。

select

datediff(

'1997-12-31 23:59:59

', '

1997-12-30

'), datediff(

'1997-11-30 23:59:59

', '

1997-12-31

');

/*mysql 允許任何expr 格式中的標點分隔符。表中所顯示的是建議的 分隔符。若 date 引數是乙個 date 值,而你的計算只會包括 year、month和day部分(即, 沒有時間部分), 其結果是乙個date 值。否則,結果將是乙個 datetime值。

若位於另一端的表示式是乙個日期或日期時間值 , 則interval expr type只允許在 + 操作符的兩端。對於 –操作符,  interval expr type 只允許在其右端,原因是從乙個時間間隔中提取乙個日期或日期時間值是毫無意義的。 (見下面的例子)。 

*/select

'1997-12-31

'+ interval 

1 second, 

'1997-12-31

'- interval 

1 second,

'1997-12-31 23:59:59

'+ interval 

1 second,interval 

1day+'

1997-12-31

', '

1998-01-01

'- interval 

1 second; --

interval 還可以使用負值

select

'1997-12-31

'+ interval  -1

day; --

時間日期格式化函式  date_format(date,format) 

select date_format(now(),

'%y-%m-%d %h:%i:%s

');

--常用獲取日期中某部分的函式

select

day(now()),dayname(now()),dayofweek(now()),dayofyear(now()) --

extract(type from date) 

--extract()函式所使用的時間間隔型別說明符同 date_add()或date_sub()的相同,但它從日期中提取其部分,而不是執行日期運算。  

--獲取月份,天數,不滿10不會自己加0

select extract(

year

from

'1999-07-02

'),extract(

month

from

'1999-07-02

');--將時間轉換為時間戳

select unix_timestamp('2009-10-26 10-06-07')

如果引數為空,則處理為當前時間

--將時間戳轉換為時間

select from_unixtime(1256540102)

MySQL 日期時間函式常用總結

獲得當前日期 時間 date time 1.1 函式 now 舉例說明 2.獲得當前日期 date 函式 www.cppcns.comcurdate 相關函式 current date current date 程式設計客棧 舉例說明 3.獲得當前時間 time 函式 curtime 相關函式 cu...

MySql 常用日期時間函式總結(未完)

select date add 2011 01 01 interval 30 day date add 2011 01 01 interval 1day adddate 2011 01 01 interval 30 day adddate 2011 01 01 30 date sub 2011 01...

MYSQL常用函式(時間和日期函式)

curdate 或current date 返回當前的日期 curtime 或current time 返回當前的時間 date add date,interval int keyword 返回日期date加上間隔時間int的結果 int必須按照關鍵字進行格式化 如 selectdate add c...