2013-09-23 4 views
0
임 약간의 문제 앉아

.. 내 데이터베이스에서 사회자 날짜는

내가 2 날짜 시간을 포함하는 테이블에 ..

는 TABLE1은 날짜 시간 0000-00-를 turn_time 평가했다대로 00 23시 59분 59초

TABLE2는 날짜 시간 등 last_move가 2013년 9월 23일 14시 20분 19초

,536,913,632 값을 갖는다 10

그리고 SQL에서 turn_time + last_move < NOW()를 계산하고 싶습니다.

하지만 결과 메신저 다시 받고는 다음과 같습니다 40261846333938.000000

어떻게 간단한 다시 현재 행의 경우 turn_time + last_move < NOW() 선택받을 수 있나요?

내 SQL : 당신의 시간을

SELECT * FROM active_games 
     INNER JOIN games 
     ON active_games.fk_games_id = games.games_id 
     INNER JOIN product 
     ON active_games.fk_product = product.product_id 
     INNER JOIN users 
     ON active_games.fk_user_id_turn = users.user_id 
     INNER JOIN user_profile 
     ON users.user_id = user_profile.fk_user_id 
     WHERE turn_time + last_move < NOW() 

감사합니다.

+0

SQL Server가 전혀 관련되지 않습니까? –

+0

두 개의 DateTimes를 추가하면 어떤 결과가 기대됩니까? – Magnus

답변

1

대신이 WHERE 절을 시도 할 수 있습니다 :

은 YYYY-MM-DD HH '의 값으로 현재 날짜와 시간을 반환

WHERE UNIX_TIMESTAMP(turn_time) + UNIX_TIMESTAMP(last_move) < UNIX_TIMESTAMP(NOW()) 

NOW()에 대한 문서는 다음과 말한다 : MM : SS '또는 YYYYMMDDHHMMSS.uuuuuu 형식 (함수가 문자열 또는 숫자 컨텍스트에서 사용되는지 여부에 따라 다름) NOW() 이후

이 당신의 WHERE 절에서 숫자 맥락에서 사용되는, 그것은합니다 (YYYYMMDDHHMMSS.uuuuuu 형식) 숫자 값을 반환하고, 날짜 시간 turn_time + last_move에 비교하려고합니다. 모든 것을 유닉스 타임 스탬프로 변환하면 비교가 제대로 작동합니다.

희망이 도움이됩니다.

+0

내 하루가 절약되었습니다! 그것은 작동;) –