欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java查詢時間段(startTime--endTime)間的數(shù)據(jù)方式

 更新時間:2022年03月02日 16:47:57   作者:墨咖  
這篇文章主要介紹了Java查詢時間段(startTime--endTime)間的數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java查詢時間段的數(shù)據(jù)

問題1

判斷時間間隔間的數(shù)據(jù),就像查詢數(shù)字一樣通過between-and方法進(jìn)行?

答1:

between-and用于查詢數(shù)字區(qū)間,不用于查詢兩個時間間隔的內(nèi)容。非要查詢,可以試著把時間格式轉(zhuǎn)換成Long型。

問題2

在用postman工具測試后,Java中報異常:(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>

此時上述問題解決。

補充:

完整的時間區(qū)間比較代碼

<where>
? ?<if test="startTime != null">
? ? ? ?AND create_time <![CDATA[>=]]> #{startTime}
? ?</if>
? ?<if test="endTime != null">
? ? ? ?AND create_time <![CDATA[<=]]>#{endTime}
? ?</if>
</where>

實體類

//創(chuàng)建時間
? ? private Date createTime;
?
//起始時間
? ? private Date startTime;
?
//結(jié)束時間
? ? private Date endTime;

格式化時間startTime和endTime的時間差

格式化時間startTime和endTime的 時間差,當(dāng)間隔超過一年時,顯示年月日;

超過一天時,顯示月日;

超過一小時時,顯示多少小時前;

超過一分鐘時,顯示多少分鐘前;

不超過一分鐘,則顯示為剛剛

/**
 * 格式化時間startTime和endTime的 時間差,用于朋友圈等地方顯示發(fā)布時間。例如“45分前”等
 * @param endTime :發(fā)布時間
 * @return 格式化的時間顯示字符
 */
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小時
        return betweenTime / (60 * 60) + "小時前";
    }
    if (betweenTime / (60) > 0) {
        //大于一分鐘
        return betweenTime / (60) + "分鐘前";
    }
    //小于一分鐘
    return "剛剛";
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論