MySQL Query检查UNIX时间戳是否不是星期一

时间:2017-10-10 10:58:13

标签: mysql sql unix-timestamp

我有一个包含100000行的MySQL表。

每行只有一列名为scrapy>=1.4.0 pymysql>=0.7.11 的列包含不同的unix-timestamp。数据类型为unixtime

除了那些unix-timestamp为星期一的行之外,你会用什么MySQL查询来删除所有行?

星期一在MySQL服务器的默认时区。

2 个答案:

答案 0 :(得分:1)

当您说“删除”时,我不确定您是否要从表中删除它们或将它们从SELECT中排除,因此我已将两者都包括在内

SELECT *
FROM YourTable
WHERE DAYOFWEEK(FROM_UNIXTIME(YourColumn)) = 2

DELETE
FROM YourTable
WHERE DAYOFWEEK(FROM_UNIXTIME(YourColumn)) <> 2

答案 1 :(得分:1)

使用FROM_UNIXTIME和DAYNAME

功能
  1. FROM_UNIXTIME将unixtime标记转换为DATETIME格式。
  2. DAYNAME需要DATETIME格式才能获取日期名称。为什么在DAYOFWEEK函数中使用DAYNAME? DAYNAME(...) <> 'Monday'
  3. 更清楚地阅读DAYOFWEEK(..) <> 2

    从问题中不清楚是否要过滤掉记录或实际删除表中的记录 所以我已经包含了用于过滤掉记录的select查询和删除以从表中删除那些记录。

    选择查询

    SELECT
     *
    FROM 
     [table] 
    WHERE
     DAYNAME(FROM_UNIXTIME(unixtime)) <> 'Monday'
    

    删除查询

    DELETE 
     *
    FROM 
     [table]
    WHERE
      DAYNAME(FROM_UNIXTIME(unixtime)) <> 'Monday'