mysql日期操作

一、获取当前日期时间

  1.1、获得当前日期+时间(date+time)函数:now()

  1.2、获取当前日期+时间(date+time)函数:sysdate()

  注:二者类拟,不同在于now()在执行时就得到了,sysdate()执行时动态得到。

  2、获取当前日期:curdate(),与current_date()等同

  3、获得当前时间:curtime(),与current_time()等同

  4、获取当前UTC日期时间:utc_date()、utc_time()、utc_timestamp()。标准0时区时间

二、日期时间Extract(选取)

  1、选取时间时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒

    set @dt='2017-10-11 14:20:31.2341'

    日期:date(@dt)

    时间:time(@dt)

    年份:year(@dt)

    季份:quarter(@dt)

    月份:month(@dt)

    天份:day(@dt)

    小时:hour(@dt)

    分钟:minute(@dt)

    秒钟:second(@dt)

    毫秒:microsecond(@dt)

  2、Extract(),可以实现类拟的功能。略

  3、dayof函数:dayofweek()、dayofmonth()、dayofyear()  

    分别返回日期参数在一周、一月、一年中的位置

    set @dt='2017-10-11'

    dayofweek(@dt)、dayofmonth(@dt)、dayofyear(@dt)

  4、week函数:week()、weekofyear()、dayofweek()、weekday()、yearweek()

    week()与weekofyear()类拟,都是计算‘某天’位于一年中的第几周

    weekday()与dayofweek()类拟,返回‘某天’在一周中的位置。参考点不同

  5、返回星期和月份:dayname(@dt)、monthname(@dt)

  6、last_day(@dt):返回月份中的最后一天

三、日期时间计算

  1、为日期增加一个时间间隔:date_add(@dt,interval (-)整数 单位)。单位:day、hour、minute等

    adddate()、addtime()可以用date_add()代替。建议总是用date_add()

  2、为日期减去一个时间间隔:date_sub()。与date_add()用法一致

  3、另类时间函数:period_add(P,N)、period_diff(P1、P2),很少用到

    period_add参数"P"的格式为“YYYYMMDD”或“YYYYMM”,第二个参数"N"表示增加或减去N 月。

    period_diff返回P1-P2个月

  4、日期、时间相减函数:datediff(date1、date2)、timediff(time、time2)

    datediff(date1,date2):返回date1-date2的天数

    timediff(time1,time2):返回time1-time2的差值(时间部分)

    注:timediff(time1,time2)参数类型必须相同

四、日期转换函数、时间转换函数

  1、(时间、秒)转换:time_to_sec(time),sec_to_time(seconds)

  2、(日期、天数)转换:to_days(date)、from_days(days)

  3、(字符串转换为日期):str_to_date(str,fromat)

    select str_to_date('08.09.2008', '%m.%d.%Y');

  4、(日期/时间)转为字符串:date_format(date,format)、time_format(time,format)

    date_format('2008-08-08 22:23:00', '%W %M %Y');

    time_format('22:23:01', '%H.%i.%s');

  5、获得国家地区时间格式函数:get_fomat()。很少用到

  6、拼凑时间、时间:makedate(year,dayofyear)、maketime(hour,minute,second)

    makedate(2001,32);   -- '2001-02-01'

    maketime(12,15,30);  -- '12:15:30'

五、时间戳(timestamp)

  1、获取当前时间戳:current_timestamp、current_timestamp()

  2、(unix时间戳、日期)转换

    unix_timestamp(),unix_timestamp();                       -- 1218290027

    unix_timestamp(date),unix_timestamp('2008-08-08 12:30:00');  -- 1218169800

    from_unixtime(unix_timestamp),from_unixtime(1218169800);              -- '2008-08-08 12:30:00'

    from_unixtime(unix_timestamp,format),from_unixtime(1218169800, '%Y %D %M %h:%i:%s %x'); -- '2008 8th August 12:30:00 2008'

  3、时间戳转换、增、减

    timestamp(date)

    timestamp(dt,time)

    timestampadd(unit,interval,datetime_expr)

    timestampdiff(unit,datetime_expr1,datetime_expr2)

六、时区转换

  convert_tz(dt,from_tz,to_tz)

  时区转换也可以通过 date_add,date_sub,timestampadd来实现

posted @ 2017-10-11 16:17  bwteacher  阅读(196)  评论(0编辑  收藏  举报