时间格式字段处理

一、localtimestamp - 时间格式字段处理

// sql
created_time timestamp(0) default LOCALTIMESTAMP not null

// java
localtimestamp

  default LOCALTIMESTAMP,可以设置默认时间是插入数据的时间

  我最初设置了上述这样,然后这样插入值:

<insert id="insert" parameterType="Market">
        insert into cs_market_service(id,
          ...
          created_by,
      created_time
          ...)
        values (nextval('seq_cs_common'),
          ...
          #{createdBy},
          #{createdTime},
      ...)
        <selectKey order="AFTER" keyProperty="id" resultType="Integer">
          SELECT currval('seq_cs_common')
        </selectKey>
    </insert>

  然后一直报错:createdTime不允许为null,但是传入了 null 值,因为我这个 java 里没有传这个值。有2种方式可以解决。

1、localtimestamp —— 将上面的 #{createdTime} 改为 下面的localtimestamp即可

<insert id="insert" parameterType="Market">
        insert into cs_market_service(id,
          ...
          created_by,
      created_time
          ...)
        values (nextval('seq_cs_common'),
          ...
          #{createdBy},
          localtimestamp,
      ...)
        <selectKey order="AFTER" keyProperty="id" resultType="Integer">
          SELECT currval('seq_cs_common')
        </selectKey>
    </insert>

2、第2种方案:取消数据库的 not null 限制

  利用数据库的 default LOCALTIMESTAMP,可以设置默认时间是插入数据的时间。

  然后将上面的 created_time 的设置删掉即可,让数据库去默认填值就行了。推荐这种方式。

上一篇:【网络】RST详解


下一篇:oracle里面查询重复数据的方法