zoukankan      html  css  js  c++  java
  • MySql常用日期函数(转载)

    /*
    date_add(date,interval expr type)和date_sub(date,interval expr type)执行日期运算。 date 是一个 datetime 或date值,用来指定起始时间。 expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-’开头。 type 为关键词,它指示了表达式被解释的方式。
    关键词interva及 type 分类符均不区分大小写。

    日期操作,adddate就是date_add的同义词。如果adddate没有指定interval,则默认将天数作为interval(date_add不行)
    */
    select date_add('2011-01-01',interval 30 day),date_add('2011-01-01',interval -1 day),adddate('2011-01-01',interval 30 day),adddate('2011-01-01',30),date_sub('2011-01-01',interval 1 day),subdate('2011-01-01',interval 1 day);

    -- 时间操作
    select addtime('2011-01-01 00:00:00','1:05:33'),addtime('00:00:00','1:05:33');

    -- 获取当前日期,+0以后会去掉分割线,current_date和curdate是同义词
    select curdate() ,curdate() +0,current_date();

    -- 获取当前时间,curtime和current_time是同义词
    select curtime(),current_time(),current_time()+0;

    -- 查询当前的服务器时区和当前连接的时区,当前连接的时区初使值与全局变量time_zone相同,但可以用下面的语句重设:set time_zone = timezone;
    select @@global.time_zone, @@session.time_zone;

    -- 指定时区转换
    select convert_tz('2004-01-01 12:00:00','+08:00','+00:00');

    -- 获取当前日期和时间,current_timestamp和now是同义词
    select current_timestamp(),now(),now()+0,current_timestamp()+0;

    -- 提取日期或时间日期表达式expr中的日期部分。
    select date('2003-12-31 01:02:03');


    -- datediff(expr,expr) ,返回expr减去expr2之间的天数。expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。
    select datediff('1997-12-31 23:59:59','1997-12-30'),datediff('1997-11-30 23:59:59','1997-12-31');

    /*
    mysql 允许任何expr 格式中的标点分隔符。表中所显示的是建议的 分隔符。若 date 参数是一个 date 值,而你的计算只会包括 year、month和day部分(即, 没有时间部分), 其结果是一个date 值。否则,结果将是一个 datetime值。

    若位于另一端的表达式是一个日期或日期时间值 , 则interval expr type只允许在 + 操作符的两端。对于 –操作符, interval expr type 只允许在其右端,原因是从一个时间间隔中提取一个日期或日期时间值是毫无意义的。 (见下面的例子)。
    */
    select '1997-12-31' + interval 1 second, '1997-12-31' - interval 1 second,'1997-12-31 23:59:59' + interval 1 second,interval 1 day + '1997-12-31','1998-01-01' - interval 1 second;

    -- interval 还可以使用负值
    select '1997-12-31' + interval -1 day;

    -- 时间日期格式化函数 date_format(date,format)
    select date_format(now(),'%y-%m-%d %h:%i:%s');

    -- 常用获取日期中某部分的函数
    select day(now()),dayname(now()),dayofweek(now()),dayofyear(now())

    -- extract(type from date)
    -- extract()函数所使用的时间间隔类型说明符同 date_add()或date_sub()的相同,但它从日期中提取其部分,而不是执行日期运算。
    -- 获取月份,天数,不满10不会自己加0
    select extract(year from '1999-07-02'),extract(month from '1999-07-02'); --将时间转换为时间戳select unix_timestamp('2009-10-26 10-06-07')如果参数为空,则处理为当前时间--将时间戳转换为时间select from_unixtime(1256540102)

  • 相关阅读:
    java入门 (七) 面向对象(三)
    java入门 (七) 面向对象(二)
    java入门 (七) 面向对象(一)
    ajax异步请求,$.each遍历拼接数据
    java入门 (六) 数组(二)
    java入门 (六) 数组(一)
    java入门 (五) 方法
    微信小程序
    776C Molly's Chemicals --- 前缀和
    CF 458C Elections --- 三分|线段树
  • 原文地址:https://www.cnblogs.com/rain-in-summer/p/5742672.html
Copyright © 2011-2022 走看看