您好,登錄后才能下訂單哦!
這篇文章主要講解了“mysql開始與結(jié)束時間允許為空的條件下怎么判斷當(dāng)前時間是否在開始與結(jié)束時間之間”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“mysql開始與結(jié)束時間允許為空的條件下怎么判斷當(dāng)前時間是否在開始與結(jié)束時間之間”吧!
需求:查詢進(jìn)行中的活動數(shù)據(jù)
下面sql則查詢的是滿足以上四種需求的結(jié)果集,達(dá)標(biāo)題需求
進(jìn)行中一共有以下幾種情況:
1.開始時間為空,結(jié)束時間為空, 此結(jié)果數(shù)據(jù)將永遠(yuǎn)為進(jìn)行中的數(shù)據(jù)
2.開始時間為空,結(jié)束時間不為空,則當(dāng)前時間在結(jié)束時間之前,為進(jìn)行中的數(shù)據(jù)
3.開始時間不為空,結(jié)束時間為空,則當(dāng)前時間在開始時間之后,為進(jìn)行中的數(shù)據(jù)
4.開始時間不為空,結(jié)束時間不為空,則當(dāng)前時間在開始與結(jié)束時間段之內(nèi)的數(shù)據(jù)為進(jìn)行中數(shù)據(jù)
SELECT * FROM 表名 WHERE 1=1 and(start_time is null or start_time<now()) and(end_time is null or end_time>now())
mybatis寫法,開始時間與結(jié)束時間傳入?yún)?shù)允許為空
如圖所示:
<if test="record.startDate != null and record.startDate != '' or record.endDate != null and record.endDate != '' "> AND id in (select id from rht_product_price where 1=1 <if test="record.startDate != null and record.startDate != ''"> and start_date <= #{record.startDate,jdbcType=VARCHAR} </if> <if test="record.endDate!= null and record.endDate != ''"> and end_date >= #{record.endDate,jdbcType=VARCHAR} </if> ) </if>
感謝各位的閱讀,以上就是“mysql開始與結(jié)束時間允許為空的條件下怎么判斷當(dāng)前時間是否在開始與結(jié)束時間之間”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對mysql開始與結(jié)束時間允許為空的條件下怎么判斷當(dāng)前時間是否在開始與結(jié)束時間之間這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。