Java查詢時(shí)間段(startTime--endTime)間的數(shù)據(jù)方式
Java查詢時(shí)間段的數(shù)據(jù)
問(wèn)題1
判斷時(shí)間間隔間的數(shù)據(jù),就像查詢數(shù)字一樣通過(guò)between-and方法進(jìn)行?
答1:
between-and用于查詢數(shù)字區(qū)間,不用于查詢兩個(gè)時(shí)間間隔的內(nèi)容。非要查詢,可以試著把時(shí)間格式轉(zhuǎn)換成Long型。
問(wèn)題2
在用postman工具測(cè)試后,Java中報(bào)異常:(String類型和Date類型比較出現(xiàn)異常)?
異常信息:
### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
### Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
mybatis--xml
<if test="startTime != null and startTime != ''">
? ?AND create_time <![CDATA[>=]]> #{startTime}
</if>答2:
此處的String類型和Date類型比較異常原因:if標(biāo)簽中,Date類型不存在String類型,直接判斷就好
<if test="startTime != null">
?AND create_time <![CDATA[>=]]> #{startTime}
</if>此時(shí)上述問(wèn)題解決。
補(bǔ)充:
完整的時(shí)間區(qū)間比較代碼
<where>
? ?<if test="startTime != null">
? ? ? ?AND create_time <![CDATA[>=]]> #{startTime}
? ?</if>
? ?<if test="endTime != null">
? ? ? ?AND create_time <![CDATA[<=]]>#{endTime}
? ?</if>
</where>實(shí)體類
//創(chuàng)建時(shí)間 ? ? private Date createTime; ? //起始時(shí)間 ? ? private Date startTime; ? //結(jié)束時(shí)間 ? ? private Date endTime;
格式化時(shí)間startTime和endTime的時(shí)間差
格式化時(shí)間startTime和endTime的 時(shí)間差,當(dāng)間隔超過(guò)一年時(shí),顯示年月日;
超過(guò)一天時(shí),顯示月日;
超過(guò)一小時(shí)時(shí),顯示多少小時(shí)前;
超過(guò)一分鐘時(shí),顯示多少分鐘前;
不超過(guò)一分鐘,則顯示為剛剛
/**
* 格式化時(shí)間startTime和endTime的 時(shí)間差,用于朋友圈等地方顯示發(fā)布時(shí)間。例如“45分前”等
* @param endTime :發(fā)布時(shí)間
* @return 格式化的時(shí)間顯示字符
*/
public static String getFriendlyTime(Date startTime, Date endTime) {
long betweenTime = (endTime.getTime() - startTime.getTime()) / 1000;
if (betweenTime < 0) {
return DateTimeUtils.convertDate2String(startTime, "yyyy年MM月dd日");
}
if (betweenTime / (60 * 60 * 24 * 365) > 0) {
//大于1年
return DateTimeUtils.convertDate2String(startTime, "yyyy年MM月dd日");
}
if (betweenTime / (60 * 60 * 24 ) > 0) {
//大于一天
return DateTimeUtils.convertDate2String(startTime, "MM月dd日");
}
if (betweenTime / (60 * 60) > 0) {
//大于1小時(shí)
return betweenTime / (60 * 60) + "小時(shí)前";
}
if (betweenTime / (60) > 0) {
//大于一分鐘
return betweenTime / (60) + "分鐘前";
}
//小于一分鐘
return "剛剛";
}以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決druid監(jiān)控頁(yè)面SQL不顯示的問(wèn)題
這篇文章主要介紹了解決druid監(jiān)控頁(yè)面SQL不顯示的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Spring Security實(shí)現(xiàn)不同接口安全策略方法詳解
這篇文章主要介紹了Spring Security實(shí)現(xiàn)不同接口安全策略方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Java將文件分割為多個(gè)子文件再將子文件合并成原始文件的示例
本篇文章主要介紹了Java將文件分割為多個(gè)子文件再將子文件合并成原始文件的示例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-02-02
MyBatis中的循環(huán)插入insert foreach問(wèn)題
這篇文章主要介紹了MyBatis中的循環(huán)插入insert foreach問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
Java設(shè)置httponly?cookie的實(shí)現(xiàn)示例
本文主要介紹了Java設(shè)置httponly?cookie的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

