MySQL 5.5中怎么利用UNIX_TIMESTAMP實現(xiàn)分區(qū),很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司專注于正寧網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供正寧營銷型網(wǎng)站建設,正寧網(wǎng)站制作、正寧網(wǎng)頁設計、正寧網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務,打造正寧網(wǎng)絡公司原創(chuàng)品牌,更為您提供正寧網(wǎng)站排名全網(wǎng)營銷落地服務。
Sql代碼
show variables like '%partition%'
如果系統(tǒng)輸出如下結(jié)果,那么恭喜你,MySQL支持分區(qū)!
Sql代碼
variable_name value
have_partitioning yes
Sql代碼
CREATE TABLE quarterly_report_status (
report_id INT NOT NULL,
report_status VARCHAR(20) NOT NULL,
report_updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
PARTITION BY RANGE ( UNIX_TIMESTAMP(report_updated) ) (
PARTITION p0 VALUES LESS THAN ( UNIX_TIMESTAMP('2011-01-01 00:00:00') ),
PARTITION p1 VALUES LESS THAN ( UNIX_TIMESTAMP('2011-02-01 00:00:00') ),
PARTITION p2 VALUES LESS THAN ( UNIX_TIMESTAMP('2011-03-01 00:00:00') ),
PARTITION p3 VALUES LESS THAN ( UNIX_TIMESTAMP('2011-04-01 00:00:00') ),
PARTITION p4 VALUES LESS THAN ( UNIX_TIMESTAMP('2011-05-01 00:00:00') ),
PARTITION p5 VALUES LESS THAN ( UNIX_TIMESTAMP('2011-06-01 00:00:00') ),
PARTITION p6 VALUES LESS THAN ( UNIX_TIMESTAMP('2011-07-01 00:00:00') ),
PARTITION p7 VALUES LESS THAN ( UNIX_TIMESTAMP('2011-08-01 00:00:00') ),
PARTITION p8 VALUES LESS THAN ( UNIX_TIMESTAMP('2011-09-01 00:00:00') ),
PARTITION p9 VALUES LESS THAN (MAXVALUE)
);
官方文檔說從MySQL 5.1.43開始,除了TIMESTAMP 外,其他日期類型都不接受!
偶雖然沒有嘗試,至于你信不信,反正我是信了!
Explain Partitions SQL測試,看看是否有效:
Sql代碼
explain partitions select * FROM quarterly_report_status q where q.report_updated<'2011-02-01 00:00:00';
輸出:
| id | select_type | table | partitions | type | possible_keys | key | key_len| ref | rows | Extra |
| 1 | SIMPLE | q | p0,p1 | ALL | NULL | NULL | NULL | NULL | 2 | Using where |
1 row in set (0.00 sec)
非常棒,完美!
————————————————————————————————————————————————————
【轉(zhuǎn)】相關函數(shù):from_unixtime(date)
date為需要處理的參數(shù)(該參數(shù)是Unix 時間戳),可以是字段名,也可以直接是Unix 時間戳字符串
后面的 '%Y%m%d' 主要是將返回值格式化(可有可無)
例如:
>SELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' )
->20071120
mysql>SELECT FROM_UNIXTIME( 1249488000, '%Y年%m月%d' )
->2007年11月20
UNIX_TIMESTAMP() 是與之相對正好相反的時間函數(shù)
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
若無參數(shù)調(diào)用,則返回一個 Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒數(shù)) 作為無符號整數(shù)。若用date 來調(diào)用 UNIX_TIMESTAMP(),它會將參數(shù)值以'1970-01-01 00:00:00' GMT后的秒數(shù)的形式返回。date 可以是一個 DATE 字符串、一個 DATETIME字符串、一個 TIMESTAMP或一個當?shù)貢r間的YYMMDD 或YYYMMDD格式的數(shù)字。
例如:
mysql> SELECT UNIX_TIMESTAMP() ; (執(zhí)行使得時間:2009-08-06 10:10:40)
->1249524739
mysql> SELECT UNIX_TIMESTAMP('2009-08-06') ;
->1249488000
SELECT * FROM `student` WHERE regTime > UNIX_TIMESTAMP( curdate( ) )
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
本文標題:MySQL5.5中怎么利用UNIX_TIMESTAMP實現(xiàn)分區(qū)
本文URL:http://chinadenli.net/article28/jpcicp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、響應式網(wǎng)站、外貿(mào)網(wǎng)站建設、用戶體驗、自適應網(wǎng)站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)