MySQL 5.5中怎么利用UNIX

66次阅读
没有评论

共计 2465 个字符,预计需要花费 7 分钟才能阅读完成。

MySQL 5.5 中怎么利用 UNIX_TIMESTAMP 实现分区,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

 
Sql 代码  
show variables like %partition%  
如果系统输出如下结果,那么恭喜你,MySQL 支持分区!
 
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;
 
【转】相关函数:from_unixtime(date)
 
date 为需要处理的参数 (该参数是 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() 是与之相对正好相反的时间函数
 
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
 
若无参数调用,则返回一个 Unix timestamp (1970-01-01 00:00:00 GMT 之后的秒数) 作为无符号整数。若用 date 来调用 UNIX_TIMESTAMP(),它会将参数值以 1970-01-01 00:00:00 GMT 后的秒数的形式返回。date 可以是一个 DATE 字符串、一个 DATETIME 字符串、一个 TIMESTAMP 或一个当地时间的 YYMMDD 或 YYYMMDD 格式的数字。
 
例如:
mysql SELECT UNIX_TIMESTAMP() ;(执行使得时间:2009-08-06 10:10:40)
– 1249524739
mysql SELECT UNIX_TIMESTAMP(2009-08-06
– 1249488000
SELECT * FROM `student` WHERE regTime UNIX_TIMESTAMP(curdate() )

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2465字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)