2012-08-23 112 views
2

我在數據庫中有unix時間戳字段。從MySQL表獲取兩天數據

 
check_in_mktime 
------------- 
1345639136 
1345639146 
1345639176 

如何使用時間戳獲取兩天的數據(包括今天和昨天)。

回答

0

如果在未來的時間內沒有簽入,然後

SELECT * FROM table_name 
WHERE check_in_mktime >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 1 DAY) 
1

你可以這樣做:

SELECT * 
FROM your_table 
    WHERE Date(FROM_UNIXTIME(check_in_mktime)) between date(now() + interval 1 day) and date(now() - interval 1 day) 
2

嘗試此查詢 -

(編輯)

SELECT * FROM table1 
WHERE 
    check_in_mktime >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 1 DAY) AND 
    check_in_mktime < UNIX_TIMESTAMP(CURDATE() + INTERVAL 1 DAY); 
+0

這隻會選擇昨天的數據加上今天的'00:00:00'的數據。 – xdazz

+0

@xdazz是的,你是對的。我編輯了答案。 – Devart

1

您需要使用以下方法:

  • NOW() =>當前日期和時間
  • FROM_UNIXTIME() =>轉換時間戳至今
  • DATE() =>從datetime數據類型獲取日期
  • DATE_SUB() =>減去日期

嘗試,

SELECT * 
    FROM your_table 
    WHERE DATE(FROM_UNIXTIME(check_in_mktime`))  -- converts timestamp to date 
        between DATE(NOW) and     -- today 
          DATE_SUB(NOW(),INTERVAL 1 DAY) -- yesterday