2
對不起再次發佈這個相同的問題,但我很想知道。如何比較日期從java到mysql時間戳字段
我想知道我們如何比較java中的當前日期和mysql中的存儲日期。存儲在MySQL
日期爲2013-01-04 13:15:00
當我通過獲取當前日期
Date date = new Date();
然後寫了一個查詢,如果存儲在MySQL中的日期小於當前顯示的結果在java中比較這日期。但查詢返回的結果是列表中的結果爲0,或者在末尾粘貼了異常。
select model from abc model where model.abcStartDate <= :? and model.abcEndDate >= :?
在「:?」日期通過 在MySQL中開始日期和結束日期是時間戳數據類型。
下面是EJB實體類
@Entity
@Table(name = "abc_table", uniqueConstraints = {})
public class ABCClass implements java.io.Serializable {
private static final long serialVersionUID = -1924961655993587546L;
// Fields
private Date abcStartDate;
private Date abcEndDate;
// Constructors
/** default constructor */
public ABCClass() {
}
@OrderBy(value="3")
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "abc_start_date", unique = false, nullable = false, insertable = true, updatable = true, length = 19)
public Date getabcStartDate() {
return this.abcStartDate;
}
public void setabcStartDate(Date abcStartDate) {
this.abcStartDate = abcStartDate;
}
@OrderBy(value="4")
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "abc_end_date", unique = false, nullable = false, insertable = true, updatable = true, length = 19)
public Date getabcEndDate() {
return this.abcEndDate;
}
public void setabcEndDate(Date abcEndDate) {
this.abcEndDate = abcEndDate;
}
}
,它拋出一個異常,在JPQL
Exception thrown from bean; nested exception is: Exception [EclipseLink-3001] (Eclipse Persistence Services - 2.2.1.v20110722-r9776): org.eclipse.persistence.exceptions.ConversionException
Exception Description: The object [65464533565], of class [class java.lang.String], could not be converted to [class java.lang.Integer].
Internal Exception: java.lang.NumberFormatException: For input string: "65464533565"
將是CURRENT_TIMESTAMP什麼?我也嘗試過傳遞時間戳,但它會引發異常。 java.sql.Timestamp t = new Timestamp(date.getTime()); –
CURRENT_TIMESTAMP分配當前時間默認值。你可以在沒有任何參數的情況下直接用於查詢。看到這個http://stackoverflow.com/questions/6597588/on-update-current-timestamp-and-jpa – vels4j
謝謝vels4j。但是如果我想傳遞參數呢?然後我必須創建一個TimeStamp對象,然後傳遞給查詢?因爲當我這樣做時會引發異常。 –