mysql 的時間操作函式
TIMESTAMPDIFF
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。
說明:
返回日期或日期時間表達式datetime_expr1 和datetime_expr2 之間的整數差。其結果的單位由interval 引數給出。該引數必須是以下值的其中一個:
- FRAC_SECOND。表示間隔是毫秒
- SECOND。秒
- MINUTE。分鐘
- HOUR。小時
- DAY。天
- WEEK。星期
- MONTH。月
- QUARTER。季度
- YEAR。年
//關閉時間 和當前時間相差分鐘
TIMESTAMPDIFF(SECOND,closed_time,now() ) < 180
TIMESTAMPADD
TIMESTAMPADD(interval,int_expr,datetime_expr)
將整型表示式int_expr 新增到日期或日期時間表達式 datetime_expr中。式中的interval和上文中列舉的取值是一樣的。
mysql> select TIMESTAMPADD(MINUTE,8820,'2012-08-24 09:00:00');
// 將“2017-03-24 09:00:00“增加 8820 分鐘
+-------------------------------------------------+
| TIMESTAMPADD(MINUTE,8820 ,'2017-03-24 09:00:00') |
+-------------------------------------------------+
| 2017-03-30 12:00:00 |
+-------------------------------------------------+
1 row in set (0.00 sec)
from_unixtime
from_unixtime函式 用於將Unix 時間戳格式化為日常的時間格式
date為需要處理的引數(該引數是Unix 時間戳),可以是欄位名,也可以直接是Unix 時間戳字串
後面的 ‘%Y%m%d’ 主要是將返回值格式化
mysql>SELECT FROM_UNIXTIME( 1195488000, '%Y%m%d' )
->20071120
mysql>SELECT FROM_UNIXTIME( 1195488000, '%Y年%m月%d' )
->2007年11月20
UNIX_TIMESTAMP
UNIX_TIMESTAMP()是與之相對正好相反的時間函式 ,用於將字串轉化為時間戳
若無引數呼叫,則返回一個 Unix timestamp (‘1970-01-01 00:00:00’ GMT 之後的秒數) 作為無符號整數
例如:
mysql> SELECT UNIX_TIMESTAMP('2007-11-20') ;
->1195488000
DATE_FORMAT
DATE_FORMAT() 函式用於以不同的格式顯示日期/時間資料。
DATE_FORMAT(date,format)
//date 引數是合法的日期。format 規定日期/時間的輸出格式。
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
結果類似:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
mysql日期加減
date_add()
MySQL 為日期增加一個時間間隔:date_add()
set @dt = now();
select date_add(@dt, interval 1 day); - 加1天
select date_add(@dt, interval 1 hour); -加1小時
select date_add(@dt, interval 1 minute); - 加1分鐘
select date_add(@dt, interval 1 second); -加1秒
select date_add(@dt, interval 1 microsecond);-加1毫秒
select date_add(@dt, interval 1 week);-加1周
select date_add(@dt, interval 1 month);-加1月
select date_add(@dt, interval 1 quarter);-加1季
select date_add(@dt, interval 1 year);-加1年
//SELECT @cdate := date_add(@cdate, INTERVAL -30 SECOND);-減去30秒
mysql> set @dt = '2009-09-09 12:12:33';
mysql>
mysql> select date_add(@dt, interval '01:15:30' hour_second);-加上1小時15分30秒
date_add(@dt, interval '01:15:30' hour_second)
結果:2009-09-09 13:28:03
/**
set @dt = now(); 也可以寫為
select @dt:=now();
mysql 變數
1.使用者變數:以"@"開始,形式為"@變數名"
使用者變數跟mysql客戶端是繫結的,設定的變數,只對當前使用者使用的客戶端生效
2.全域性變數:定義時,以如下兩種形式出現,set GLOBAL 變數名 或者 set @@global.變數名
對所有客戶端生效。只有具有super許可權才可以設定全域性變數
變數參考:http://www.cnblogs.com/wangtao_20/archive/2011/02/21/1959734.html
**/
date_sub()
MySQL 為日期減去一個時間間隔:date_sub();
MySQL date_sub() 日期時間函式 和date_add() 用法一致,不再贅述。
mysql 時間函式
YEAR(time)
返回time的年份
MONTH(time)
返回time的月份(範圍是1到12)
DAY(time)
返回time的日期(範圍是1到31)
HOUR(time)
返回time的小時(範圍是0到24)
MINUTE(time)
返回time的分鐘數(範圍是0到59)
SECOND(time)
返回time的秒數(範圍是0到59)
ROUND() 函式
ROUND(X,D)
此函式返回x舍入到最接近的整數。如果第二個引數,D有提供,則函式返回x四捨五入至第D位小數點。D必須是正數或全部右邊小數點的數字將被刪除。