【问题标题】:Select MySQL records based on expiry timestamp and current date time根据过期时间戳和当前日期时间选择 MySQL 记录
【发布时间】:2020-10-11 07:03:27
【问题描述】:

我有一个名为 expiry 的列,它以 Unix 时间戳的形式存储到期日期时间。我要选择没有过期的记录。

SELECT * FROM user_subscription WHERE username = ? AND expiry < NOW()

例如,如果到期等于 1601427661,即 2020 年 9 月 30 日上午 6 点左右,则不应选择该记录,因为它已到期。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:
    SELECT * 
    FROM user_subscription 
    WHERE username = ? 
      AND expiry < UNIX_TIMESTAMP()
    

    【讨论】:

      【解决方案2】:

      使用 FROM_UNIXTIME() 转换日期时间

      where username= ? and FROM_UNIXTIME(expiry)>now()
      

      【讨论】:

      • 这可以防止在expiry上使用索引
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 2013-06-16
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      相关资源
      最近更新 更多