我有一個表,其中有列submitted_date(時間戳無時區)。我需要列出表中具有特定日期作爲提交日期的所有記錄。但不要考慮數據庫中的時間。我通過使用標準查詢和休眠來檢索記錄。如何忽略這裏的時間?休眠條件查詢時間戳
其實我從客戶端傳遞一個日期,並且必須檢索與submitted_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);
}
}
}
以上是我的代碼。客戶端使用extjs完成。 extjs過濾一個日期字段的服務器端代碼是這樣的。
hibernate在下面給出。
<?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>
我在數據庫中有兩條記錄,其中submitted_date如下。
2013年2月15日00:00:00
2013年2月15日13:04:42.787
當我做一個查詢過濾使日期爲今天的記錄,以第一名的成績提交日期 2013-02-15 00:00:00只能被檢索。
這是因爲我用來查詢的日期對象,也有這個值 「2013年2月15日00:00:00」
我將如何進行查詢,將忽略時間部分?
可以請你解釋一下'但是不考慮數據庫中的時間'是什麼意思? – 2013-02-15 07:08:53
你試過了嗎?你的問題不清楚 – 2013-02-15 07:09:58
不需要考慮什麼時間?系統時間還是db時間?執行時間? – aksappy 2013-02-15 07:12:45