2016-07-27 2 views
-1

Вот мой стол. Мне нужно сопоставить значение. Как я могу это сделать?Как совместить значение времени?

Я спасая LAST_ACCESS_TIME как time() в 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 - серьезно ... вы работаете в ИТ, или вы студент? "не работает"? Что это значит? ЧТО НЕ РАБОТАЕТ? КАК это не работает? Разве вы не можете сделать лучше, чем «не работает»? – mathguy

+2

Просто попробуйте 'где LAST_ACCESS_TIME BETWEEN 1456790400 AND 1459382400' –

ответ

1

PHP времени() возвращают Отметка времени Unix (номер секунд от 01.01.1970). Так что, если вам нужно, чтобы преобразовать его в актуальном состоянии Oracle, вы можете найти такие темы, как этого https://dba.stackexchange.com/questions/16461/convert-a-unix-timestamp-to-a-datetime-in-a-view

Так это простое решение должно помочь:

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 
Смежные вопросы