暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql的时间查询

测试备忘录 2021-05-31
784

    今天用到了关于时间的查询,来做一个总结和整理:

    数据库中的时间一般有两种常见的格式,一种是普通的时间格式,即:yyyy-mm-ss: hh:mm:ss。一种是时间戳的格式。时间戳中又分为秒和毫秒两种格式。

  1. 时间戳简介

    Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z.

    2. 数据库中时间的查询

    1)普通时间

    1、查询当前时间1天前的时间点


    select date_sub(now() ,interval 1 day)

    2.查询当前时间的时间1天之后的时间点

    select data_sub(now(),interval -1 day)

    3.查询当前时间1个月之前的时间点

    select data_sub(now(),interval 1 month)

    4.查询当前时间1个月之后的时间点

    select data_sub(now,interval -1 month)
    复制

        2)时间戳转换

      1. 时间转换为时间戳
      SELECT UNIX_TIMESTAMP('2015-04-15 10:03:19')


      2. 时间戳转换为时间
      SELECT FROM_UNIXTIME(1429063399,'%Y-%m-%d %H:%i:%s')


      3. 毫秒级时间戳转换为时间
      SELECT FROM_UNIXTIME(ctime/1000,'%Y-%m-%d %H:%i:%s')
      复制

          3) 应用示例

        1. 查询大于多少时间戳的数据
        SELECT * FROM table WHERE `timestamp`>(SELECT unix_timestamp(date_sub(now() ,interval 30 day))*1000);


        2. 查询大于多少时间的数据
        SELECT * FROM table WHERE (SELECT FROM_UNIXTIME(timestamp/1000,'%Y-%m-%d %H:%i:%s') )<=date(now());
        复制
        文章转载自测试备忘录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论