oracle:
    此执行是在oracle下!
关于日期和时间的问题,date只有日期   timestamp 带有时分秒
一  #号取值
    1.date
        insert into table (column1) values (#{aa,jdbcType=DATE})
 
    语句执行的sql:
        insert into table (column1)  values (to_date('08/27/2015 20:20:20', 'mm/dd/yyyy hh24:mi:ss'))
 
    实际插入到数据库的结果:
 
    2015/08/27
  --只有日期! 没有时间
 
** PS: 如果 aa取值时是null 或 "" 则插入到数据库里的为 null 
 
    2.timestamp
 
        insert into table (column1) values (#{aa,jdbcType=TIMESTAMP})
 
语句执行的sql:
 
       insert into table (column1)  values (to_ timestamp('08/27/2015 20:20:20.000', 'mm/dd/yyyy hh24:mi:ss.ff3'))
 
实际插入到数据库的结果:
 
2015/08/27 20:20:20
  --带有时分秒的
 
 
二  直接用to_date() / to_timestamp()函数
    前提:这两个函数不能用于java里的Date类型,只能用于String类型,即aa 的数据类型只能是String
    mybatis在处理to_date函数时(to_timestamp()同理) 
        #{aa} 没有指定jdbctype, 则根据java数据类型给出一个jdbctype,  但如果 aa为null 或 "" 则出报错
        #{aa,jdbcType=DATE} ,指定jdbctype后,会转换为相应的jdbctype,但如果类型不匹配,则报错. 如果 aa为null 或 ""  则aa 取值为null
        
     PS: java.util.Date aa  mybatis默认给出的jdbctype=TIMESTAMP  即:#{aa} 等价于 #{aa,jdbcType=TIMESTAMP}
 
    1. to_date()
    
    sql1:     insert into table (column1) values (to_date(#{aa},'YYYY-MM-DD'))
    sql2:    insert into table (column1) values (to_date(#{aa},'YYYY-MM-DD hh24:mi:ss'))
 
    执行的sql语句:
    sql1:    insert into table (column1) values (to_date('2015-09-08 20:20:20','YYYY-MM-DD'))
    sql2:     insert into table (column1) values (to_date('2015-09-08 20:20:20','YYYY-MM-DD hh24:mi:ss'))
 
    执行结果:
    sql1:    报错:  日期格式图片在转换整个输入字符串之前结束    转换类型不匹配
    sql2:    column1 : 2015-09-08 20:20:20
 
    2. to_timestamp()
    sql3:     insert into table (column1) values (to_timestamp(#{aa},'YYYY-MM-DD'))
    sql4:    insert into table (column1) values (to_timestamp(#{aa},'YYYY-MM-DD hh24:mi:ss'))
 
    执行的sql语句:
    sql3:    insert into table (column1) values (to_timestamp('2015-09-08 20:20:20','YYYY-MM-DD'))
    sql4:     insert into table (column1) values (to_timestamp('2015-09-08 20:20:20','YYYY-MM-DD hh24:mi:ss'))
 
    执行结果:
    sql3:    报错:  日期格式图片在转换整个输入字符串之前结束    转换类型不匹配
    sql4:    column1 :   08-9月 -15 08.20.20.000000000 下午   //timestamp 带有更多的时间信息
 
三  直接取值
    没有jdbctype  没有to_date函数  column1的类型为date
     sql5:     insert into table (column1) values (#{aa})    //aa的java 数据类型为String 
    sql6:     insert into table (column1) values (#{aa})    //aa的java 数据类型为 java.util.Date
    执行的sql语句:
    sql5:    insert into table (column1) values ('2015-09-08 20:20:20')
  sql6:    insert into table (column1) values (to_timestamp('09/08/2015 15:14:38.000','mm/dd/yyyy hh24:mi:ss.ff3'))
    执行结果:
    sql5:    报错:  文字与格式字符串不匹配    转换类型不匹配
    sql4:    column1 :   2015/8/27 20:20:20  

mybatis 关于时间的问题与技巧的更多相关文章

  1. mybatis按时间条件搜索

    dto接受前台字符串时间格式 @DateTimeFormat(pattern = "yyyy-MM-dd") private Date contractStartDt; @Date ...

  2. mybatis的时间比较 xml 及不解析<=的写法

    <if test="type ==1"> and DATE_FORMAT(create_date,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y ...

  3. 保持ssh连接长时间不断开的技巧

    我经常用ssh连接服务器,过段时间不用, 需要恢复一下断开的连接, 原因是NAT防火墙喜欢对空闲的会话进行超时处理,以确保它们状态表的干净和内存的低占用率,因为 长时间保持连接, 会长期占用部分系统资 ...

  4. SpringMVC+MyBatis 返回时间格式转换的解决方案

    Spring MVC 4.X ResponseBody 日期类型Json 处理 摘自http://tramp-zzy.iteye.com/blog/2090330  2014-07-10 方法一:全局 ...

  5. MyBatis中时间格式的映射问题

    简单地说,就是Java的Date类可以直接映射到Mysql的TIMESTAMP或者是DATETIME(按道理应该是映射成DATE的) 具体的看这两篇博客吧: 1. MySql中TIMESTAMP和DA ...

  6. mybatis操作mysql的奇淫技巧总结(代码库)

    1.添加公共sql代码段 使用<sql> 和 <include> 标签 <sql id="userSubassemblyRecordParam"> ...

  7. sql isdate判断时间函数(小技巧)

    isdate 是一个判断字符串是否为日期的函数,0代表所传入的字符串不是日期,1代表传入的参数是日期. select   isdate('30/12/2014')  ---0 第一个是 mdy --如 ...

  8. MyBatis按时间排序

    测试代码 ActivityReadExample readExample = new ActivityReadExample(); readExample.setOrderByClause(" ...

  9. MyBatis使用技巧、总结、注意事项

    目录 1.mybatis的官方文档地址 2.其他技巧: 2.1 如何在代码中拼接 like %% 2.2 数据库比较时日期的错误操作 2.2.1 异常情况: 2.2.2 为什么会在后面指定jdbcTy ...

随机推荐

  1. NSURL 子串截取

    NSURL *url = [NSURL URLWithString:@"http://reg.email.163.com/unireg/call.do?cmd=register.entran ...

  2. MySQL的char和varchar

    一.VARCHAR与CHAR字符型数据的差异 在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char,这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数据的保存方式来 ...

  3. IOS_FMDB有关字典、数组存储及获取问题

    http://blog.csdn.net/betterbb/article/details/25984455 FMDB存储字典或数组时会变成字符串存入sqlite里,但如果不将其转换成json格式存储 ...

  4. Android控件系列之RadioButton&RadioGroup

    学习目的: 1.掌握在Android中如何建立RadioGroup和RadioButton 2.掌握RadioGroup的常用属性 3.理解RadioButton和CheckBox的区别 4.掌握Ra ...

  5. Mysql导入zabbix的sql语句时报错:ERROR 1045 (28000)

    #Warning: Using a password on the command line interface can be insecure.#ERROR 1045 (28000): Access ...

  6. Thinking in scala (5)----高阶函数*

    高阶函数是函数式编程里面一个非常重要的特色,所谓的高阶函数,就是以其它函数作为参数的函数. 下面以一个小例子演示Scala的高阶函数特性,非常有意思,也非常强大. 首先看这么一个程序: code1: ...

  7. Eclipse上Spring-tool的安装

    三种安装方式: 插件地址:http://spring.io/tools/sts/all 1.在线安装  Help-->> Install new Software 2.本地安装,Help- ...

  8. java 服务

    2014年2月27日 10:30:55 学习 Java Service Wrapper 2014年2月27日 14:14:14太复杂了,以后研究吧. ###### 2014年2月27日 14:14:2 ...

  9. iOS 之 支付

    现在广泛应用的是微信支付和支付宝支付,这两种应该覆盖了几乎所有网上消费的用户,所以我们就用这两种支付方式就够了.2014年用过支付宝的网民购物占比有94%. 1. iOS 之 微信支付 2. iOS ...

  10. iOS 之 OC开发实战

    iOS 开发之登陆 iOS 程序初始一个带导航栏的视图 iOS 添加导航栏两侧按钮 iOS UITabBar