oracle中常用的 SQL语句中举办时刻加减
发布时间:2021-01-11 13:28:49 所属栏目:站长百科 来源:网络整理
导读:一: numtodsinterval(x,c) ?,x是一个数字,c是一个字符串, 表白x的单元,这个函数把x转为interval day to second数据范例 常用的单元有 (‘day‘,‘hour‘,‘minute‘,‘second‘) example SQL select sysdate,sysdate+numtodsinterval(3,‘hour‘) as res fr
|
副问题[/!--empirenews.page--]
一: numtodsinterval(<x>,<c>)?,x是一个数字,c是一个字符串,表白x的单元,这个函数把x转为interval day to second数据范例 常用的单元有 (‘day‘,‘hour‘,‘minute‘,‘second‘) example SQL> select sysdate,sysdate+numtodsinterval(3,‘hour‘) as res from dual; SYSDATE???????????? RES ------------------- ------------------- 2007-09-05 01:45:34?? 2007-09-05 04:45:34 ? numtoyminterval?与numtodsinterval函数相同,将x转为interval year to month数据范例 常用的单元有‘year‘,‘month‘ example SQL> select sysdate,sysdate+numtoyminterval(3,‘year‘) as res from dual; SYSDATE???????????? RES ------------------- ------------------- 2007-09-05 01:54:53?? 2010-09-05 01:54:53 ----------------------------------------------------------------------------------------------------------------------- 名目:NumToYMInterval(n,interval_unit); n: 数值范例 interval_unit:?‘YEAR‘,‘MONTH‘ ,或其他可以转换成这两个值之一的表达式 ? NumToYMInterval(1,‘YEAR‘) :一年后的隔断 NumToYMInterval(-1,‘MONTH‘): 一个月前 ? 小数会被计较成整数后,再做计较: ? select sysdate + numtoyminterval(0.1,‘MONTH‘)? as future from dual; ? FUTURE ------------------ 11-OCT-13 ? 该函数的功效是:”INTERVAL YEAR TO MONTH literal“。不能与数值做运算。 select 1 + NumToYMInterval(1,‘MONTH‘) from dual Oracle会返回一个错误。 ? 做日期运算时,这个函数很是有效。譬喻:取一个月后的日期: select sysdate + NumToYMInterval(1,‘MONTH‘) from dual; ? *********************************************************************************** 本身在mybatis的用法<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cnpc.oms2.qual.apply.mapper.QualApplyExternalUserMapper">
<select id="showExternalUser" parameterType="hashmap" resultType="hashmap">
SELECT exUser.PK_USEREXTEND_CHANGE_ID,exUser.EMPLOYEE_ID,exUser.ENT_NAME,exUser.NAME,exUser.SERVER_OILFIELD,exUser.REQBOOK_NUM,exUser.IS_VALID,exUser.BSFLAG,exUser.CREATE_USER,exUser.UPDATE_USER,exUser.CREATE_DATE,exUser.UPDATE_DATE,exUser.ORG_CODE,sysUser.USER_NAME as USER_NAME,sysUser.START_DATE+numtodsinterval(sysUser.VALID_DATES,‘day‘) as END_DATE
FROM QUAL_BASE_USEREXTEND_CHANGE exUser
LEFT JOIN OMS_SYS_USER sysUser
ON exUser.EMPLOYEE_ID = sysUser.EMPLOYEE_ID
<where>
<if test="entName !=null and entName != ‘‘ ">
exUser.ENT_NAME like CONCAT(CONCAT(‘%‘,#{entName}),‘%‘)
</if>
<if test="userName !=null and userName != ‘‘ ">
AND sysUser.USER_NAME like CONCAT(CONCAT(‘%‘,#{userName}),‘%‘)
</if>
<if test="loginName !=null and loginName != ‘‘ ">
AND exUser.NAME like CONCAT(CONCAT(‘%‘,#{loginName}),‘%‘)
</if>
<if test="reportUnit !=null and reportUnit != ‘‘ ">
AND exUser.SERVER_OILFIELD like CONCAT(CONCAT(‘%‘,#{reportUnit}),‘%‘)
</if>
<if test="reportNum !=null and reportNum != ‘‘ ">
AND exUser.REQBOOK_NUM like CONCAT(CONCAT(‘%‘,#{reportNum}),‘%‘)
</if>
<if test="startDate !=null and startDate !=‘‘">
AND TO_CHAR(sysUser.START_DATE,‘YYYY-mm-dd‘) >= #{startDate}
</if>
<if test="endDate !=null and endDate !=‘‘">
AND TO_CHAR(sysUser.START_DATE+numtodsinterval(sysUser.VALID_DATES,‘day‘),‘YYYY-mm-dd‘) <= #{endDate}
</if>
AND
exUser.ORG_CODE like CONCAT(CONCAT(‘%‘,#{orgCode}),‘%‘)
<if test="entId !=null and entId != ‘‘ ">
OR a.ENT_ID like CONCAT(CONCAT(‘%‘,#{entId}),‘%‘)
</if>
AND exUser.BSFLAG = ‘0‘
</where>
ORDER BY
<if test="isSort == ‘yes‘">
<trim suffixOverrides=",">
</trim>
</if>
<if test="isSort == ‘no‘">
END_DATE DESC,exUser.SERVER_OILFIELD
</if>
</select>
</mapper>
***********************************************************************************
?
加法?
select sysdate,add_months(sysdate,12) from dual;???????? --加1年 select sysdate,1) from dual;???????? --加1月 select sysdate,to_char(sysdate+7,‘yyyy-mm-dd HH24:MI:SS‘) from dual;??? --加1礼拜 select sysdate,to_char(sysdate+1,‘yyyy-mm-dd HH24:MI:SS‘) from dual;??? --加1天 select sysdate,to_char(sysdate+1/24,‘yyyy-mm-dd HH24:MI:SS‘) from dual;?? --加1小时 select sysdate,to_char(sysdate+1/24/60,‘yyyy-mm-dd HH24:MI:SS‘) from dual;?? --加1分钟 select sysdate,to_char(sysdate+1/24/60/60,‘yyyy-mm-dd HH24:MI:SS‘) from dual; --加1秒 减法 select sysdate,-12) from dual;???????? --减1年 select sysdate,-1) from dual;???????? --减1月 select sysdate,to_char(sysdate-7,‘yyyy-mm-dd HH24:MI:SS‘) from dual;??? --减1礼拜 select sysdate,to_char(sysdate-1,‘yyyy-mm-dd HH24:MI:SS‘) from dual;??? --减1天 select sysdate,to_char(sysdate-1/24,‘yyyy-mm-dd HH24:MI:SS‘) from dual;?? --减1小时 select sysdate,to_char(sysdate-1/24/60,‘yyyy-mm-dd HH24:MI:SS‘) from dual;?? --减1分钟 select sysdate,to_char(sysdate-1/24/60/60,‘yyyy-mm-dd HH24:MI:SS‘) from dual; --减1秒 ? ? 对当前日期增进一个小时: SQL> select sysdate,sysdate+numtodsinterval(1,’hour’) from dual ; (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

