2014-07-12 2 views
0

SYSDATE를 저장하는 열이있는 테이블에 레코드를 저장했습니다.SQL의 동일 날짜

이제 쿼리를 실행하고이 테이블의 모든 행을 JSP 페이지에 표시했습니다. 나는 행을 선택하고 그것을 업데이트하기위한 버튼을 주었다.

SQL 테이블에서 특정 행을 선택하여 업데이트하려고합니다. 이를 위해, 모든 행의 날짜 열은 고유 내가

Update Table 
Set record_seen='Y' 
Where sub_date Like to_date('01-01-2014','dd/mm/yyyy') 

처럼 위의 쿼리 작업을 쿼리를 사용하여 해당 행을 선택하기 위해 그것을 사용하고 싶지만 어떻게 내가 위의 쿼리에서 전체 sysdate like '2014-07-11 10:37:52.0'를 사용할 수 있습니까?

+0

행에 서로 게이트 키가 있으면 업데이트하는 것이 훨씬 쉽습니다. 날짜 정밀도와 날짜 충돌을 방지합니다. –

+0

형식을 ''YYYY-MM-DD HH24 : MI : SS.SSSSS ''로 변경하십시오. –

+0

errrgh, 이것은 끔찍한 것으로 보입니다. 대리 키가 필요합니다 (일반적으로 자동 증가 정수) –

답변

1

댓글에 약간 깁니다. 나는 당신이 당신의 문제를 해결했다고 의심합니다. 당신이 오라클 사용하고 아마도

create index idx_table_tochar_subdate on table(to_char(sub_date, 'YYYY-MM-DD HH24:MI:SS')); 

: 단점은 당신이 기능 지수, 같은 것을 구현하지 않는 한이 인덱스를 사용하지 것입니다

Update Table 
    Set record_seen='Y' 
    Where to_char(sub_date, 'YYYY-MM-DD HH24:MI:SS') = '2014-07-11 10:37:52'; 

: 쿼리는 같을 것이다. 각 행에 의사 열을 추가하는 것은 어려울 수 있습니다. 그 이유는 적어도 이전 버전의 Oracle에서는 각 테이블에 대한 시퀀스와 트리거를 작성해야하기 때문입니다. 이 목적으로 rowid 의사 열을 사용할 수도 있습니다. 사용자에게 rowid을 표시하지 않지만이를 저장하고 업데이트에 사용합니다. Hererowid에 대한 자세한 정보입니다.

+0

rowid가 내가 찾고있는 것입니다! 이렇게하면 별도의 시퀀스를 만들 필요가 없으며 테이블 스키마를 그대로 유지할 수 있습니다. – codeln