2016-07-27 58 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