zoukankan      html  css  js  c++  java
  • SQL常用日期函数

    1、基本函数

    SELECT CURDATE(),  --当前日期
           CURTIME(),  --当前时间
           
           NOW(),      --当前日期+时间
           SYSDATE()


    2、获取 日期、时间的特定部分

     SELECT YEAR(NOW()),          -- 年 
            MONTHNAME(NOW()),     -- 月的名称
            WEEK(NOW()),          -- 一年中的第几周
            DAYNAME(NOW()),       -- 这一天是这一周的周几
            HOUR(NOW()),          -- 小时
            MINUTE(NOW()),        -- 分钟
           
            EXTRACT(YEAR FROM NOW()),
            EXTRACT(QUARTER FROM NOW()),                
            EXTRACT(MONTH FROM NOW()),      
            EXTRACT(DAY FROM NOW()),      
            EXTRACT(YEAR FROM NOW()),      
            EXTRACT(HOUR FROM NOW()),      
            EXTRACT(MINUTE FROM NOW()),      
            EXTRACT(SECOND FROM NOW()),
           
            EXTRACT(YEAR_MONTH FROM NOW()),   -- 格式:YYYYMM 201606
            EXTRACT(DAY_HOUR FROM NOW()),     -- 格式:DDHH 2418        
            EXTRACT(DAY_MINUTE FROM NOW()),   -- 格式:DDMM 2405          
            EXTRACT(DAY_SECOND FROM NOW()), 
            EXTRACT(HOUR_MINUTE FROM NOW()),        
            EXTRACT(HOUR_SECOND FROM NOW()),        
            EXTRACT(MINUTE_SECOND FROM NOW()) 


    3、获取日期的特殊函数

    SELECT  DAYOFYEAR(NOW()),    -- 一年中的第几天
            DAYOFMONTH(NOW()),   -- 一个月中的第几天
            DAYOFWEEK(NOW()),    -- 一周中的第几天,周日作为第1天
           
            WEEKOFYEAR(NOW()),   -- 一年中的第几周
            WEEKDAY(NOW()),      -- 周几,周一作为第0天
            YEARWEEK(NOW()),     -- 一年中的第几周,格式为:201625 
            
            LAST_DAY(NOW())      -- 当前日期所在月份的最后一天


    4、日期、时间运算

    SELECT DATE_ADD(NOW(),INTERVAL 10 YEAR),   -- 增加日期
           DATE_ADD(NOW(),INTERVAL 10 MONTH),   
           DATE_ADD(NOW(),INTERVAL 10 DAY),   
           DATE_ADD(NOW(),INTERVAL 10 HOUR),   
           DATE_ADD(NOW(),INTERVAL 10 MINUTE),   
           DATE_ADD(NOW(),INTERVAL 10 SECOND),         
    
           DATE_SUB(NOW(),INTERVAL 10 DAY),    -- 减少日期
           DATE_SUB(NOW(),INTERVAL -10 DAY),
           DATE_SUB(NOW(),INTERVAL -10 HOUR),
                  
           DATEDIFF(DATE_ADD(NOW(),INTERVAL 8 HOUR),NOW()),  -- expr1 减去 expr2 得到的天数
           DATEDIFF(DATE_ADD(NOW(),INTERVAL 9 HOUR),NOW()),  -- 在相减时,只是做日期部分的计算,不考虑时 
           DATEDIFF(NOW(),'2016-06-05'), 
           
           PERIOD_ADD(201605,8),             -- 给YYMM、YYYYMM 加上N个月
           PERIOD_DIFF(201605,201701),       -- expr2 减去 expr1 得到的月数
    
           TIMEDIFF('05:00:00','00:00:00')   -- expr1 减去 expr2 得到的 时间型数据,不支持这种格式 INTERVAL 10 MINUTE

    5、日期、时间运算的增强版本

    SELECT TIMESTAMP(NOW()),                 -- 把日期时间 转化为 时间戳类型
           TIMESTAMP(NOW(),'01 01:01:01'),   -- 转换类型的同时,会加上 expr2
           
           TIMESTAMPADD(DAY,5,NOW()),        -- 增加日期 5天
           
           TIMESTAMPDIFF(DAY,NOW(),NOW()+INTERVAL 1 DAY), -- 日期减法,可以指定 具体的单位
           TIMESTAMPDIFF(SECOND,NOW(),NOW())


    6、日期、时间的转化和构造

    SELECT TIME_TO_SEC(CURTIME()),              -- 时间转化为秒数:67622
           SEC_TO_TIME(TIME_TO_SEC(CURTIME())), -- 秒数转化为时间:18:47:02
            
           TO_DAYS(NOW()),                      -- 日期转化为天数:736504
           FROM_DAYS(TO_DAYS(NOW())),           -- 天数转化为日期:2016-06-24
           
           MAKEDATE(2015,32),                   -- 构造日期:expr1为年,expr2为天,这里是:2015-02-01
           MAKETIME(10,11,11)                   -- 构造时间:时 分 秒


    7、 日期、时间的格式化以及获取格式

    SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),   -- 把日期时间 按照一定的格式,转化为字符串格式
           TIME_FORMAT(NOW(),'%H:%i:%s'),
           
           GET_FORMAT(DATE,'usa'),    -- 获取格式,expr1:DATE,TIME,DATETIME, expr2:usa,interval,iso
           GET_FORMAT(TIME,'usa'),
           GET_FORMAT(DATETIME,'usa')


    8、 unix时间戳、utc时间

     SELECT UTC_DATE(),
            UTC_TIME(),       
            UTC_TIMESTAMP(),
               
            UNIX_TIMESTAMP(NOW()),
            FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())),
            FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()),'%Y-%m-%d %H:%i:%s')
  • 相关阅读:
    MySQL数据表类型 = 存储引擎类型
    删除链表节点
    链表逆序(反转)
    腾讯2012笔试题
    MysqL数据表类型
    进程间的通信方式
    网络套接字编程学习笔记一
    HTTP报头
    C语言排序算法
    交换排序经典的冒泡排序算法总结
  • 原文地址:https://www.cnblogs.com/momogua/p/8304433.html
Copyright © 2011-2022 走看看