oracle mybatis DATE无法存时分秒

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明出处 https://blog.csdn.net/tutian2000/article/details/80498367
<sql id="sys_sms_id">SYS_SMS_ID.NEXTVAL</sql>
<insert id="save" parameterType="SmsDO">
        insert into SYS_SMS
        (
            ID,
            PHONE,
            CODE,
            SENDDATE
        )
        values
        (
            <include refid="sys_sms_id"/>,
            #{phone,jdbcType=VARCHAR},
            #{code,jdbcType=VARCHAR},
            #{sendDate,jdbcType=DATE}
        )
    </insert>

在将时间存到oracle里面的时候发现怎么都无法将带时分秒的日期存进去,每次存只能存到年月日。
结果发现在mybatis里面设置传参的jdbcType=DATE的话就会出现问题。
所以改为

<sql id="sys_sms_id">SYS_SMS_ID.NEXTVAL</sql>
<insert id="save" parameterType="SmsDO">
        insert into SYS_SMS
        (
            ID,
            PHONE,
            CODE,
            SENDDATE
        )
        values
        (
            <include refid="sys_sms_id"/>,
            #{phone,jdbcType=VARCHAR},
            #{code,jdbcType=VARCHAR},
            #{sendDate}
        )
    </insert>

2018-05-30更新
当使用的数据库为oracle时,时间类型全部使用TIMESTAMP,即

```

SYS_SMS_ID.NEXTVAL

insert into SYS_SMS
(
ID,
PHONE,
CODE,
SENDDATE
)
values
(
,
#{phone,jdbcType=VARCHAR},
#{code,jdbcType=VARCHAR},
#{sendDate,jdbcType=TIMESTAMP}
)

“`

DATE在oracle中只能存储年月日,TIMESTAMP可以存储到时分秒,所以在使用的时候全部换成TIMESTAMP

猜你喜欢

转载自blog.csdn.net/tutian2000/article/details/80498367
今日推荐