2016-07-27 60 views
-1

這是我的桌子。我需要匹配的價值。我怎樣才能做到這一點?如何匹配時間值?

我節省了LAST_ACCESS_TIMEtime()在PHP

$time = time(); 

TS_SESSION數據:

USER_ID |HASH_VALUE      |LAST_ACCESS_TIME 
--------|---------------------------------|----------------- 
1  |31feefaba85e4e8dbb8ef9d5ae9bfda9 |1414754384  
3  |90ad8c64a2034b4a139ef595b3627d8d |1414769029  
2  |9f12581e0dfce0d7f40c0df77d1f1fd7 |1414782017  

嘗試查詢:

SELECT * 
FROM TS_SESSION 
where LAST_ACCESS_TIME BETWEEN timestamp '1456790400' AND timestamp '1459382400'; 
+0

它只是一個例子。但這一個不工作@Rene –

+0

@QuestionUser - 認真......你在IT工作,還是你是學生? 「不管用」?那是什麼意思?什麼不起作用?如何不工作?你不能比「不工作」做得更好嗎? – mathguy

+2

只需嘗試'在哪裏LAST_ACCESS_TIME之間1456790400和1459382400' –

回答

1

PHP時間()返回UNIX時間戳(數從01/01/1970秒開始)。 這樣 https://dba.stackexchange.com/questions/16461/convert-a-unix-timestamp-to-a-datetime-in-a-view

所以如果你需要將其轉換爲Oracle日期,你會發現主題因此,這個簡單的解決方案應該有所幫助:

WITH ts_session AS 
(SELECT 
    1414754384 LAST_ACCESS_TIME 
FROM DUAL) 
SELECT 
    to_date('1970-01-01','YYYY-MM-DD')+ 
    numtodsinterval(LAST_ACCESS_TIME,'SECOND')) AS date_value 
FROM ts_session 

如果您需要格式化字符串值,使用TO_CHAR:

WITH ts_session AS 
(SELECT 
    1414754384 LAST_ACCESS_TIME 
FROM DUAL) 
SELECT 
    to_char(to_date('1970-01-01','YYYY-MM-DD')+ 
      numtodsinterval(LAST_ACCESS_TIME,'SECOND')), 
      'MM/DD/YYYY HH24:MI:SS') AS char_value 
FROM ts_session