欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql中对于时间的处理,时间的滚动,求时间间隔,切换时区等等

程序员文章站 2023-09-30 00:02:49
mysql中对于时间的处理,时间的滚动,求时间间隔,切换时区等等 在mysql的使用过程中,有时候会出现对时间进行的操作,比如时间向前向后滚动,求2个时间的间隔,或者切换时区的操作 1,时间向前滚动(未来),假如现在有一个开始时间,持续时间,而我的业务只希望知道结束时间,这个时候就需要用到TIMES ......

mysql中对于时间的处理,时间的滚动,求时间间隔,切换时区等等

在mysql的使用过程中,有时候会出现对时间进行的操作,比如时间向前向后滚动,求2个时间的间隔,或者切换时区的操作

1,时间向前滚动(未来),假如现在有一个开始时间,持续时间,而我的业务只希望知道结束时间,这个时候就需要用到TIMESTAMPADD函数,

  DATE_ADD(date,INTERVAL expr type)

  date 参数是合法的日期表达式,可以是你需要的时间字段,如start_time(假设这是一个字段名)。

  INTERVAL 是固定语法关键词

  expr 参数是您希望添加的时间间隔,如 1  2  5。

  type 参数可以是下列值:

    FRAC_SECOND。毫秒

    SECOND。秒
    MINUTE。分钟
    HOUR。小时
    DAY。天
    WEEK。星期
    MONTH。月
    QUARTER。季度
    YEAR。年

2, 时间向后滚动(过去),和上面的用法类似,不过这次用的是DATE_SUB函数

  DATE_ADD(date,INTERVAL expr type)

  date 参数是合法的日期表达式,可以是你需要的时间字段,如start_time(假设这是一个字段名)。

  INTERVAL 是固定语法关键词

  expr 参数是您希望添加的时间间隔,如 1  2  5。

  type 参数可以是下列值:

    FRAC_SECOND。毫秒

    SECOND。秒
    MINUTE。分钟
    HOUR。小时
    DAY。天
    WEEK。星期
    MONTH。月
    QUARTER。季度
    YEAR。年
  

3,求2个时间的间隔,使用TIMESTAMPDIFF函数,

  语法:
    TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。

    TIMESTAMPDIFF是语法关键词

    interval是以什么精度返回

    datetime_expr1,第一个时间

    datetime_expr2,另一个时间
  说明:
    返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:
    FRAC_SECOND。表示间隔是毫秒
    SECOND。秒
    MINUTE。分钟
    HOUR。小时
    DAY。天
    WEEK。星期
    MONTH。月
    QUARTER。季度
    YEAR。年

4, 切换时区的方法,在切换时区的时候考虑到日期变更线的问题,所以采用mysql自带的函数显然是明智之选

  CONVERT_TZ(dt,from_tz,to_tz)

  转换datetime值dt,从 from_tz 由给定转到 to_tz 时区给出的时区,并返回的结果值。 如果参数无效该函数返回NULL。

  mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
  +---------------------------------------------------------+
  | CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00') |
  +---------------------------------------------------------+
  | 2004-01-01 22:00:00 |
  +---------------------------------------------------------+
  1 row in set (0.00 sec)
  时区方法原地址