2013-10-28 98 views
1

如果有人能告訴我,如果該方法是不夠好,工作請:MYSQL COMPARE + DATETIME WITH SUBSTR?

SELECT 
      idusers, 
      nom, 
      prenom, 
      email, 
      SUBSTR(lastlogin, 1, 10), 
      genre 
     FROM 
      users 
       WHERE 
        active = 1 
         AND 
        is_banned != 1 
         AND 
        SUBSTR(lastlogin, 1, 10) < '2013-10-14' 
         OR 
        active = 1 
         AND 
        is_banned != 1 
         AND 
        lastlogin IS NULL 

據「SUBSTR(lastlogin,1,10)<‘2013年10月14日’」,顯然工作,但我我不確定這是否是找到自2周以來未登錄的人的最佳方式。

乾杯!

+0

很明顯DATETIME格式是「yyyy-mm-dd 00:00:000」或Null – Titus

回答

0

您不應該依賴DATE列的默認字符串格式。相反,mysql有一堆數據處理函數可以使用:

SELECT idusers, 
     nom, 
     prenom, 
     email, 
     DATE_FORMAT (last_login, ;%y-%m-%d) 
     genre 
FROM users 
WHERE active =1 
     AND 
     is_banned != 1 
     AND 
     (DATE_DIFF(CURDATE(), last_login) >= 14 OR lst_login IS NULL)