共計 2465 個字符,預計需要花費 7 分鐘才能閱讀完成。
MySQL 5.5 中怎么利用 UNIX_TIMESTAMP 實現(xiàn)分區(qū),很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
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)
非常棒,完美!
mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash; mdash;
【轉(zhuǎn)】相關(guā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)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝您對丸趣 TV 的支持。