난 submit_date (시간대없이 표준시) 열이있는 테이블이 하나 있습니다. 특정 날짜를 제출 한 테이블의 모든 기록을 제출 날짜로 기재해야합니다. 그러나 데이터베이스에서 시간을 고려하지 마십시오. 조건 쿼리 및 최대 절전 모드를 사용하여 레코드를 검색합니다. 여기서 시간을 무시하는 법?타임 스탬프에 대한 최대 절전 기준 쿼리
실제로 클라이언트 측에서 날짜를 전달하고 제출 된 날짜와 같은 날짜의 레코드를 검색해야합니다. 그러나 시간을 고려할 필요가 없습니다.
else if(extjsFilter.getField().equals("submittedDate")) {
String str_date=extjsFilter.getValue();
SimpleDateFormat format1 = new SimpleDateFormat("MM/dd/yyyy");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
Date date2 = format1.parse(str_date);
String datenew = format2.format(date2);
Date date = (Date)format2.parse(datenew);
if(extjsFilter.getType().equals("date"))
{
if(extjsFilter.getComparison().equals("gt"))
{
Filter postDateFilterGT = getSession().enableFilter("jobFilterPostDateGT");
postDateFilterGT.setParameter("postDateFilterGT", date);
}
if(extjsFilter.getComparison().equals("lt"))
{
Filter postDateFilterLT = getSession().enableFilter("jobFilterPostDateLT");
postDateFilterLT.setParameter("postDateFilterLT", date);
}
if(extjsFilter.getComparison().equals("eq"))
{
Filter postDateFilterEQ = getSession().enableFilter("jobFilterPostDateEQ");
postDateFilterEQ.setParameter("postDateFilterEQ", date);
}
}
}
위 코드는 내 코드입니다. 클라이언트 측은 extj를 사용하여 완료됩니다. 한 날짜 필드에 대한 extjs 필터링의 서버 측 코드는 다음과 같습니다.
최대 절전 모드는 다음과 같습니다.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hiringsteps.ats.job.domain">
<class
name="Job"
table="hs_job_master">
<id name="id" column="job_id" unsaved-value="null">
<generator class="sequence">
<param name="sequence">hs_job_id_seq</param>
</generator>
</id>
<property name="submittedDate" column="submitted_date"/>
<filter name="jobFilterPostDateGT"><![CDATA[submitted_date > :postDateFilterGT]]></filter>
<filter name="jobFilterPostDateLT"><![CDATA[submitted_date < :postDateFilterLT]]></filter>
<filter name="jobFilterPostDateEQ"><![CDATA[:postDateFilterEQ = submitted_date]]></filter>
</class>
<filter-def name="jobFilterPostDateGT">
<filter-param name="postDateFilterGT" type="date"/>
</filter-def>
<filter-def name="jobFilterPostDateLT">
<filter-param name="postDateFilterLT" type="date"/>
</filter-def>
<filter-def name="jobFilterPostDateEQ">
<filter-param name="postDateFilterEQ" type="date"/>
</filter-def>
</hibernate-mapping>
다음과 같이 제출 된 날짜가있는 데이터베이스에 두 개의 레코드가 있습니다. 04 :
2013년 2월 15일 0시 0분 0초
2013년 2월 15일 13
나는 쿼리가 오늘로 날짜를 가진 레코드를 필터링 할 수 있도록 42.787, 첫 번째 레코드에 제출 날짜 2013-02-15 00:00:00 만 검색합니다. 내가 쿼리하는 데 사용 날짜 객체,이 값 '2013년 2월 15일 0시 0분 0초'
가 어떻게 시간 부분을 무시하는 쿼리를 만들 것입니다 있기 때문에이 무엇입니까?
'데이터베이스에서 시간을 고려하지 마십시오'라는 것이 무슨 뜻인지 설명해 주실 수 있습니까? –
와우 아직 시도해 보셨습니까? 귀하의 질문은 명확하지 않습니다 –
시간을 고려할 필요가 없습니다 무엇? 시스템 시간 또는 DB 시간? 사형 집행 시간? – aksappy