• mysql


    //本月的第一天,最后一天   
    $start=date('Y-m-01', strtotime(date("Y-m-d")));  
    echo date('Y-m-d', strtotime("$start +1 month -1 day"));
    //上一个月的第一天,最后一天
    $start=date("Y-m-d",strtotime("2016-11-01"."-1 month")); 
    echo date('Y-m-d', strtotime("$start +1 month -1 day"));   
     //下一个月的第一天,最后一天
    $start=date("Y-m-d",strtotime("2016-11-01"."+1 month")); 
    echo date('Y-m-d', strtotime("$start +1 month -1 day"));

    一、当天或当日插入的数据:

    1、传统对比判断:SELECT * FROM `t` WHERE DATE_FORMAT(addTime,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')");
    2、第一点的简写:SELECT * FROM `t` WHERE addTime >= date_format(NOW(),'%Y-%m-%d');
    3、利用函数判断:SELECT * FROM `t` WHERE DATEDIFF(addTime,NOW()) =0;//推荐此方法
    4、利用时间戳判断:SELECT * FROM `t` WHERE addTime BETWEEN (UNIX_TIMESTAMP(now()-86440)) AND now();
    注:返回当天时间的mysql函数有CURDATE()、CURRENT_DATE()、CURRENT_DATE、NOW()几种;其中NOW()获取的日期格式为0000-00-00 00:00:00的时间;CURDATE()、CURRENT_DATE()、CURRENT_DATE是获取日期格式为0000-00-00的时间,所以返回的时间无时分秒;

    1、时间戳转日期,方法是select from_unixtime(1336542121);
    2、日期转时间戳,方法是:select unix_timestamp('2013-04-08′);

    mysql分区

    使用 : select * from news_main PARTITION(news_main_a)

    注意:当我们使用insert语句的时候,默认会分配到最后一个分区

    注意:据说只有MyISAM类型才可以分区

    #分区
    alter table news_main PARTITION by range(id)
    (
      PARTITION news_main_a values less than(4),
      PARTITION news_main_b values less than(6),
      PARTITION news_main_c values less than(MAXVALUE)
    );
    

    #显示Mysql的文件目录路径 show VARIABLES
    like '%datadir%'; #合并分区 alter table 表名 reorganize partition 分区名1,分区名2 into (partition 分区名 values less than (xx)); #取消分区(重新合并所有分区) Alter table news_main remove partitioning; #删除分区(包含分区中的数据) alter table 表名drop partition 分区名;(丢数据)

    explain 性能检测(不会执行操作)

    ALL    #(最差)全表扫描
    
    index  # 排序查询,如order by id,id必须是索引或者主键,说明了哪怕默认是正排序,也得使用一下
    
    range  # 范围查询,如where id > 20 、 id like '20%',id必须是索引或者主键
    
    const  #(最优)索引查询,如where id = 1

     

    时间类型字段通常用timestamp类型。默认公式为:CURRENT_TIMESTAMP

    rand()随机获取1-50的整数

    SELECT FLOOR(1 + (RAND() * 50));

    获取guid

    SELECT UUID();

    @变量赋值与取值

    SELECT user_name,user_pwd INTO @user_name,@user_pwd from user_table where user_id = '1';

    SELECT @
    user_name,@user_pwd;

    SELECT + IF

    select if(bid <> '',3,type) from statements

    获取当前时间

    SELECT CURDATE()  //2016-06-20

    获取昨天的时间

    SELECT UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY)) //2016-06-19

    获取当前时间戳

    SELECT UNIX_TIMESTAMP() 

    转换时间戳

    SELECT FROM_UNIXTIME(update_time, '%Y-%m-%d %H:%i:%S') FROM `user`

    SELECT FROM_UNIXTIME( `happen_time` ) from statements

     获取当前时间

    mysql> select now();
    
    +---------------------+
    | now()               |
    +---------------------+
    | 2008-08-08 22:20:46 |
    +---------------------+

    时间相差(其中unit单位有如下几种,分别是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or YEAR。)

    SELECT TIMESTAMPDIFF(HOUR,'2016-05-13 20:50:54',now())

    时间转化

    DATE_FORMAT('2012-12-12 11:10:02','%Y-%m-%d')

     定义变量以及赋值

    SELECT @Q := question as Q FROM user WHERE openid = '123' limit 1
  • 相关阅读:
    如何让一个对话框全屏对话框
    学习网络请求返回json对应的model
    学习网络请求返回json对应的model
    android获取未安装APK签名信息及MD5指纹
    android获取未安装APK签名信息及MD5指纹
    Android stadio 模板 liveTemplate不管用
    Android stadio 模板 liveTemplate不管用
    android 事件传递机制
    android systemtrace 报错
    我今天的收获,必备stadio 插件
  • 原文地址:https://www.cnblogs.com/CyLee/p/5485358.html
Copyright © 2020-2023  润新知