zoukankan      html  css  js  c++  java
  • MySQL日期函数

    1、已知出生日期,求年龄

    SELECT
        '1992-04-10' as birthday,
        curdate(),
        (
            YEAR (curdate()) - YEAR ('1992-04-10')-1 + (
                DATE_FORMAT('1992-04-10', '%m%d') <= (
                    DATE_FORMAT(curdate(), '%m%d')
                )
            )
        ) AS '年龄'
    SELECT
        YEAR (curdate()) - YEAR (birthday)-1+ (RIGHT(curdate(),5) >= RIGHT(birthday,5));

    2.出生日期求年龄函数

    DROP FUNCTION countage;
    DELIMITER //
    CREATE FUNCTION countage(birthday VARCHAR(15)) //参数birthday 为日期格式
    RETURNS INT(10)
    LANGUAGE SQL DETERMINISTIC NO SQL SQL SECURITY DEFINER
    BEGIN
    DECLARE age INT(10);
    IF birthday IS NULL THEN 
    RETURN '';
    END IF;
    SET age = YEAR(CURDATE()) - YEAR(birthday) - 1;
    IF MONTH(CURDATE()) = MONTH(birthday) THEN
    IF DAY(CURDATE()) > DAY(birthday) THEN 
    SET age = age + 1;
    END IF;
    ELSEIF MONTH(CURDATE()) > MONTH(birthday) THEN
    SET age = age +1;
    END IF;
    RETURN age;
    END//
    DELIMITER ;

     3.时间戳:

    select unix_timestamp(); //当前时间戳

    select from_unixtime(unix_timestamp()); --将时间戳转成日期格式

    select curdate(); -- 返回今天的时间日期

    select now(); --取得当前时间

    select year(now()); -- 年

    select month(now()); --月

    select day(now()) -- 日

    select hour(now()) --小时

    select minute(now()) --分钟

    select second(now()) -- 秒

    select datediff(now(),'1997-07-01'); -- 两个日期相距多少天

    select date_sub(curdate(),interval 1 day); --取出昨天的日期

    select date_add(curdate(),interval -1 day); -- 取出昨天的日期

  • 相关阅读:
    安装@vuecli "失败"
    随缘更新codeforces题解
    四边形不等式
    斯特林数与幂
    待补队列
    IOC容器Autofac的另类使用
    Qt4.x 手工编译及集成到VS2010
    发段代码,验证码,很久以前的,拿出来共享啦。
    WCF 第六章 序列化和编码 总结
    WCF 第六章 序列化与编码之XmlSerializer
  • 原文地址:https://www.cnblogs.com/cexm/p/6181979.html
Copyright © 2011-2022 走看看