PostgreSQL을 데이터베이스로 사용하여 PHP를 사용하여 출석 응용 프로그램을 개발하고 있습니다. 여기 PostgreSQL - 시간과 값의 비교> 24:00
내 테이블 : 문자에서 (50)- ID 시간 시간대없이
기본적으로 지정된 시간에 몇 명이나 있는지 확인하고 싶습니다. 예를 들어 입력이 08:00 인 경우 08:00 이전에 로그인하고 08:00 이후에 로그 아웃 한 모든 사람이 계산됩니다.
내가 만난 문제는 Out < In 인 것으로, 이는 00:00 전에 로그인하고 00:00 이후에 로그 아웃 한 사람을 의미합니다. 는 I는 다음의 SQL을 사용하여이 문제를 해결하려고 시도 :
SELECT COUNT(*) FROM(
SELECT tbl_1."ID" FROM attendance as tbl_1 WHERE "In" < "Out" AND "In" < '$input' AND "Out" > '$input'
UNION
SELECT tbl_2."ID" FROM attendance as tbl_2 WHERE "Out" < "In" AND "In" < '$input2' AND "Out" > '$input'
) AS tmp_tbl
$ 입력은 입력 데이터 (문자열)를 저장하는 PHP 변수이다. $ input2는 입력 데이터 +24 시간을 저장하는 PHP 변수입니다 (처음 두 문자를 바꿨습니다).
하지만 불행히도 나는 PostgreSQL이 값을 24:00 이상으로 비교할 수 없다는 또 다른 문제가 발생했습니다.
Query failed: ERROR: date/time field value out of range: "35:11:00"
사람이이 문제에 DateIn 및 DateOut 또 다른 열을 추가
이외의 날을 도와 드릴까요?
날짜에 대한 정보를 저장 하시겠습니까?
죄송합니다.
당신이 $ 입력에 문제가 :
당신이 이런 식으로 입력을 사용할 수 있습니다
. – bksitime
에서interval
에 테이블 정의를 변경하는 경우'in'과'out'은'time' 타입이어야합니까? 'timestamp'를 사용하여 값에 날짜 정보를 추가 할 수 있습니까? 순수한'time' 값을 사용하는 모든 해결 방법보다 더 좋을 것입니다. – Thilo
@Thilo 타임 스탬프를 사용하여 시간 비교의 예를 들어 주시겠습니까? 입력란에 고정 날짜를 지정할 수 없습니다. 입력과 전체 표를 비교해보십시오. –