MySQL函数之DATE_SUB,CURDATE等使用记录
MySQL函数使用记录DATE_SUB函数CURDATE函数<![CDATA[<= ]]>date(cv.gmt_modify)示例DATE_SUB函数定义DATE_SUB() 函数从日期减去指定的时间间隔。用法w3cschool文档参考CURDATE函数用法返回当前日期示例1,查询中使用SELECT NOW(),CURDATE(),CURTIME()示例2,建表时设置默认值CR
·
MySQL函数使用记录
DATE_SUB函数
- 定义
- DATE_SUB() 函数从日期减去指定的时间间隔。
- 用法
CURDATE函数
- 用法
- 返回当前日期
- 示例1,查询中使用
SELECT NOW(),CURDATE(),CURTIME()
- 示例2,建表时设置默认值
CREATE TABLE Orders
(
OrderId int NOT NULL,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT CURDATE(),
PRIMARY KEY (OrderId)
)
<![CDATA[<= ]]>
- 是什么:
- <![CDATA[ ]]> 是什么?这是XML语法。在CDATA内部的所有内容都会被解析器忽略。
- 场景
- 在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。
- 注意
- 但是有个问题那就是 等这些标签都不会被解析,所以我们只把有特殊字符的语句放在 <![CDATA[ ]]> 尽量缩小 <![CDATA[ ]]> 的范围。
- SQL示例
<select id="allUserInfo" parameterType="java.util.HashMap" resultMap="userInfo1">
<![CDATA[
SELECT newsEdit,newsId, newstitle FROM shoppingGuide WHERE 1=1 AND newsday > #{startTime} AND newsday <= #{endTime}
]]>
<if test="etidName!=''">
AND newsEdit=#{etidName}
</if>
</select>
解释:因为这里有 “>” “<=” 特殊字符所以要使用 <![CDATA[ ]]> 来注释,但是有 标签,所以把等 放外面
- 如果SQL中的特殊字符比较少可以直接包裹特殊字符,例如包裹“<=”:
<![CDATA[ <= ]]>
date(cv.gmt_modify)
- 用法:提取日期或日期/时间表达式的日期部分,舍弃时间字段,方便比较,否则就需要将待比较的参数设置为带有日期时间的格式,使用SQL函数更加方便。
- 参考:
SQL中的日期函数
示例
SELECT DISTINCT(cv.user_id) FROM `user` u
INNER JOIN
share_user_info sui
ON u.share_id=sui.user_id
INNER JOIN cv
ON cv.user_id=u.id
WHERE sui.account_manager_id=#{userId}
<if test='startDate != "0" and endDate != "0" '>
AND cv.gmt_modify BETWEEN #{startDate} AND #{endDate}
</if>
<if test='startDate == "0" and endDate == "0" '>
AND DATE_SUB(CURDATE(), INTERVAL 30 DAY) <![CDATA[<= ]]> date(cv.gmt_modify)
</if>
更多推荐
所有评论(0)