精华内容
下载资源
问答
  • 时间类型 数据库类型与java中类型的对应关系: DATE java.sql.Date TIME java.sql.Time TIMESTAMP java.sql.Timestamp * 领域对象(domain实体类)中的所有属性不能出现java.sql包下的东西!即不能使用java.sql...
    时间类型
       数据库类型与java中类型的对应关系:
          DATE      java.sql.Date
          TIME      java.sql.Time
          TIMESTAMP   java.sql.Timestamp
       * 领域对象(domain实体类)中的所有属性不能出现java.sql包下的东西!即不能使用java.sql.Date;
       * ResultSet#getDate()返回的是java.sql.Date()
       * PreparedStatement#setDate(int, Date),其中第二个参数也是java.sql.Date
    
       时间类型的转换:
          java.util.Date —————> java.sql.Date、 java.sql.Time、 java.sql.Timestamp
             把util的Date转换成毫秒值,使用毫秒值创建sql的Date、Time、Timestamp
             java.util.Date date = new java.util.Date();
             long longtime = date.getTime();
             java.sql.Date sqlDate = new java.sql.Date(longtime);
          java.util.Date <————— java.sql.Date、 java.sql.Time、 java.sql.Timestamp
             这一步不需要处理了,因为java.sql.Date、Time、Timestamp 都是java.util.Date的子类,可直接转型。
    
    目录
       1、Java中的时间类型
       2、时间类型相互转换
       3、代码演练
       -------------------------------------------------------
       1、Java中的时间类型
          java.sql包下给出三个与数据库相关的日期时间类型,分别是:
             Date:表示日期。如:2018-08-26,只有年月日。
             Time:表示时间。如:11:52:08,只有时分秒。
             Timestamp:表示时间戳。如:2018-08-26 11:52:08.896,有年月日时分秒,以及毫秒。
          这三个类都是java.util.Date的子类。
    
       2、时间类型相互转换
          (1)把数据库的三种时间类型赋给java.util.Date,基本不用转换,因为这是把子类对象给父类的引用,不需要转换。
             java.sql.Date date = …
             java.util.Date d = date;
    
             java.sql.Time time = …
             java.util.Date d = time;
    
             java.sql.Timestamp timestamp = …
             java.util.Date d = timestamp;
    
          (2)当需要把java.util.Date转换成数据库的三种时间类型时,这就不能直接赋值了,这需要使用数据库三种时间类型的构造器。
             java.sql包下的Date、Time、TimeStamp三个类的构造器都需要一个long类型的参数,表示毫秒值。
             创建这三个类型的对象,只需要有毫秒值即可。
             我们知道java.util.Date有getTime()方法可以获取毫秒值,那么这个转换也就不是什么问题了。
                java.utl.Date d = new java.util.Date();
                //时间的long型数据
                long longtime = d.getTime();
                //Date日期,只有年月日
                java.sql.Date date = new java.sql.Date(longtime );
                //Time时间,只有时分秒
                java.sql.Time time = new java.sql.Time(longtime );
                //Timestamp时间戳,有年月日时分秒,以及毫秒
                java.sql.Timestamp timestamp = new java.sql.Timestamp(longtime );
    
       3、代码演练
          我们来创建一个dt表:
             CREATE TABLE dt(
                d DATE,
                t TIME,
                ts TIMESTAMP
             );
          下面是向dt表中插入数据的代码:
          @Test
          public void doInsert() throws SQLException {
             //获得jdbc连接
             Connection con = JdbcUtils.getConnection();
             String sql = "insert into dt value(?,?,?)";
             //预处理绑定sql
             PreparedStatement pstmt = con.prepareStatement(sql);
    
             java.util.Date d = new java.util.Date();
             pstmt.setDate(1, new java.sql.Date(d.getTime()));
             pstmt.setTime(2, new Time(d.getTime()));
             pstmt.setTimestamp(3, new Timestamp(d.getTime()));
             pstmt.executeUpdate();
          }
    
          下面是从dt表中查询数据的代码:
          @Test
          public void doSelect() throws SQLException {
             Connection con = JdbcUtils.getConnection();
             String sql = "select * from dt";
             PreparedStatement pstmt = con.prepareStatement(sql);
             //获得结果集,默认指向beforeFirst位置。(即数据的上面)
             ResultSet rs = pstmt.executeQuery();
    
             rs.next();  //ResultSet内部行光标下移到第一条记录,便可直接操作第一行数据
             java.util.Date d1 = rs.getDate(1);
             java.util.Date d2 = rs.getTime(2);
             java.util.Date d3 = rs.getTimestamp(3);
    
             System.out.println(d1);
             System.out.println(d2);
             System.out.println(d3);
          }
    
       总结:dao层与数据库打交道,用java.sql.Date、Time、Timestamp;
          返回到service层及以上与java代码都一律转换为java.utl.Date类型。
    
    
    展开全文
  • 数据库时间格式转换

    千次阅读 2019-07-08 14:15:40
    1.首先数据库时间类型date和datetime的区别: date:日期 datetime日期+时分秒 2.获取: 数据库的值显示在前台页面上,默认是毫秒值,肯定不是我们希望的到的结果,所以需要在查询的时候做转换操作。 2.1首先在执行sql...

    最近操作数据库的时候对时间的操作进行了简单的总结:
    1.首先数据库时间类型date和datetime的区别:
    date:日期
    datetime日期+时分秒
    2.获取:
    数据库的值显示在前台页面上,默认是毫秒值,肯定不是我们希望的到的结果,所以需要在查询的时候做转换操作。
    2.1首先在执行sql的xml文件中resultmap格式映射指定格式:jdbcType="TIMESTAMP
    2.2sql语句书写格式(查询字段为open_time):
    DATE_FORMAT(open_time,’%Y-%m-%d %H:%i:%s’)open_time
    2.3实体类中该字段对应的类型为String
    3.查询时间段内的信息
    3.1查询距当前时间前一天的时间,这里面的时间应为动态传入
    WHERE ptbl.date_time BETWEEN date_sub(‘2019-07-08 11:40:00’,interval 1 day) and ‘2019-07-08 11:40:00’
    3.2查询某一字段为三天内的数据
    TO_DAYS(NOW()) - TO_DAYS(ptcr.createtime)<=3
    4.最近总结的SQL优化
    4.1我们在多表查询的用的最多的是join 我们可以在该表中定义json字段,存储经常查询的字段值以json格式存储,查询的时候直接获取该json值在后台代码中解析即可,速度非常快。
    4.2多表查询可以利用表中的时间列来过滤时间,提高查询速度。

    展开全文
  • 不同数据库之间的时间格式,及字符串转时间,以及系统时间
  • to_timestamp与to_char、to_date之间的转换 时间和字符串插入与更新 insert into table (time )values(to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'))##插入的是字符串 update table set time = to_char...

    mysql与sql server参见菜鸟教程
    oracle学习网站比较少oracle阿里云

    用表举个实例

    --创建测试表
    create or replace table test_gg(
    tid varchar2(64) not null,
    tname varchar2(64),
    tbirthday timestamp(6),
    tbirthDate date
    )
    tablespace test_data
    pctfree 10
    initrans 1
    maxtrans 255
    storage(
    initial 16
    next 1
    minextents 1
    maxextents unlimited
    );
    --其中test_data为表空间,要是简单的测试的话从tablespace到它下面第一个分号处可不用执行。
    -- Add comments to the table
    comment on table test_gg is '测试Date和Timestamp专用' ;
    --Add comments to the columns
    comment on column test_gg.tid is '主键';
    comment on column test_gg.tname is '昵称';
    comment on column test_gg.tbirthday is '生日(Timestamp类型)';
    comment on column test_gg.tbirthdate is '生日(Date类型)';
    --插入数据
    insert into test_gg values(sys_guid(),'张三',to_timestamp(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'),sysdate);
    
    

    TIMESTAMP与DATE的区别

    1.精确度 DATE精确到秒,无小数点。TIMESTAMP秒下面有小数点。
    2.格式举例:DATE:2019-07-08 17:13:37 TIMESTAMP:2019-07-08 17:13:37.000000

    to_timestamp与to_char、to_date之间的转换

    
    
    

    时间和字符串插入与更新

    insert into table (time )values(to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'))##插入的是字符串
    update table  set  time = to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'))      ##更新的是字符串
    insert into test_gg values(sys_guid(),'张三',to_timestamp(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'),sysdate);##插入的是时间
    
    展开全文
  • 使用js转换数据库时间类型

    千次阅读 2016-04-22 20:56:03
    通常查询数据库返回的时间如果不进行处理 返回的格式为 /Date(1459699200000)/ 这时候如果需要用户看懂 就需要进行转换 具体步骤如下: 1 导入打包好的js文件,内容为 /** * 对Date的扩展,将 Date 转化为指定...

    通常查询数据库返回的时间如果不进行处理  返回的格式为   /Date(1459699200000)/   这时候如果需要用户看懂  就需要进行转换   

    方法1:

     //将序列化成json格式后日期(毫秒数)转成日期格式
            function ChangeDateFormat(cellval) {
                var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));
                var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
                var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
                return date.getFullYear() + "-" + month + "-" + currentDate;
            }


    方法:2:

    具体步骤如下:

    1  导入打包好的js文件,内容为

    /**     
     * 对Date的扩展,将 Date 转化为指定格式的String     
     * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符     
     * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)     
     * eg:     
     * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423     
     * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04     
     * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04     
     * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04     
     * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18     
     */       
    Date.prototype.pattern=function(fmt) {        
        var o = {        
        "M+" : this.getMonth()+1, //月份        
        "d+" : this.getDate(), //日        
        "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时        
        "H+" : this.getHours(), //小时        
        "m+" : this.getMinutes(), //分        
        "s+" : this.getSeconds(), //秒        
        "q+" : Math.floor((this.getMonth()+3)/3), //季度        
        "S" : this.getMilliseconds() //毫秒        
        };        
        var week = {        
        "0" : "/u65e5",        
        "1" : "/u4e00",        
        "2" : "/u4e8c",        
        "3" : "/u4e09",        
        "4" : "/u56db",        
        "5" : "/u4e94",        
        "6" : "/u516d"       
        };        
        if(/(y+)/.test(fmt)){        
            fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));        
        }        
        if(/(E+)/.test(fmt)){        
            fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "/u661f/u671f" : "/u5468") : "")+week[this.getDay()+""]);        
        }        
        for(var k in o){        
            if(new RegExp("("+ k +")").test(fmt)){        
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));        
            }        
        }        
        return fmt;        
    }  
    2 、假设需要处理的值 var value= /Date(1459699200000)/ ,

      

     var result=(eval(value.replace(/ \/Date\ ( ( \ d+) \ ) \ / / gi, "new Date($1)"))).pattern("yyyy-M-d");
    result  就是转换后的值   var result=2016-4-4;

    以上方法中 各个方法的作用为:

     1 eval()  计算括号中的值,参数必须为字符串       

     2  /\/Date\((\d+)\)\//gi     是正则表达式  \为转义符   /gi为参数    

    /i (忽略大小写)
    /g (全文查找出现的所有匹配字符)
    /m (多行查找)
    /gi(全文查找、忽略大小写)
    /ig(全文查找、忽略大小写)

    new Date($1)为要把匹配出的字符串替换为的内容  ($1)为正则表达式中第一个括号内的内容   即(1459699200000)

    执行过程为  eval("new Date(1459699200000)")   计算 这个时间    结果是Mon Apr 04 2016 00:00:00 GMT+0800 (中国标准时间)

     然后再用pattern函数转换即可

       

    展开全文
  • 数据库SQL中的数据类型转换

    万次阅读 2017-09-28 09:01:38
    oracle提供的单行函数中,针对不同的数据类型,提供大量实用的函数,同时提供一系列数据类型转换函数,如下:  sql.append(" select CURVE_NAME,S_YEAR_LIMIT,AVERAGE_VALUE,to_char(d_date,'yyyy-MM-dd') d_date
  • 各种数据库之间的转换工具,亲测,好用!简洁方便。节省好多时间
  • entity @Column(name = "OUTIME") private Date outime; vo private String outime; impl vo.setOutime(DateUtils.getDateFormat(entity.getOutime(), "...argument type...
  • 查看所涉及到实体时间类型为如图 实体中设置的为date时间戳类型,在页面中需要显示的是"yyyy-MM-dd HH:mm:ss"这种时间格式 解决方案 将实体中的date时间戳改为指定datetime类型时间字段 在SSM进行时间格式转换...
  • Oracle数据库时间类型与JAVA之间的转换和应用.本人学习过程中的一点菲薄的总结,希望高手提意见
  • 日期和时间是每个系统,每个数据库设计必不可少的部分。也是容易被大家忽视的部分...最近设计新系统的数据库,涉及到跨时区的问题,于是专门调研了不同日期时间类型的利弊,也咨询了不少同行使用的情况。这里分享给大家
  • 数据库日期转换为时间戳

    千次阅读 2017-08-15 12:55:29
    $data=O::select('created_at','total') ->get()->toArray();... //将数据库中的订单创建时间转换为时间戳 foreach($data as $v){ if(!empty($v)) { preg_match_all('/\d/', $v, $sh_arr); //$v是字符串 $tim
  • 本篇讲了关于如”MM/dd/yyyy HH:mm”类型字符串日期类型转换的方法,写了一点自己在开发过程中解决问题的方法。 下面上主要代码: 第一种转换方法:public Map, Object> ConvertStrToDate(Map, Object> paramMap) ...
  • PostgreSQL数据库中的数据类型转换

    千次阅读 2015-12-24 11:42:54
    PostgreSQL的数据类型转换(格式化)函数提供了一套非常有效的工具,用于各种数据类型之间的相互转换,可以将日期/时间,integer,floating point,numeric 转换成格式化的字符串以及反过来从格式化的字符串转换成...
  • 1、主要方法还是通过日期格式的转换来获取convert语法:convert(类型type,表达式/字段,style样式) style样式限于DateTime类型.Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT...
  • mysql 数据库时间类型 datetime 转换格式 数据库时间字段datetime可以使用date_format( )函数进行时间的转换。 数据库时间字段类型: 数据库查询结果: 没转换前页面显示的时间数据: 页面显示我是用 ...
  • 数据库中是datetime时间字段,当使用mybatis转换时候,如果使用date类型,分钟和秒都变成0 应该在mybatis中使用 TIMESTAMP <result column="gmt_create" property="gmtCreate" jdbcType="TIMESTAMP"/>
  • sybase omnibus中时间类型转换
  • 数据库时间戳的转换

    千次阅读 2018-10-11 16:15:48
    时间转字符串 select date_format(now(), ‘%Y-%m-%d’); #结果:2016-01-05 时间转时间戳 select unix_timestamp(now()); #结果:1452001082 字符串转时间 select str_to_date(‘2016-01-02’, ‘%Y-%m-%d %...
  • 获取数据库时间、时间格式转换

    千次阅读 2017-05-11 11:44:07
    * 方法详细说明:数据库获取String类型当前时间(yyyy-MM-dd HH:mm:ss)  * @author zhengkunqi  * @version 1.0  * - 上午11:42:42 2017-5-11 * @par 参数说明 *@return * @par 变更历史:  ...
  • 数据库Date与JavaDate类型的相互转换

    千次阅读 2020-02-17 02:55:31
    数据库 基础: 自动生成uuid时,bean类里要有主键id,且数据库设置大小里要够长 xml <insert id="time" parameterType="com.qyctest.bean.TimeDemo"> <selectKey keyProperty="cid" resultType=...
  • java.sql.Timestamp cannot be cast to java.lang.Long java.util.Date与的java.sql....java.util.Date(二者是父子关系,可以直接赋值,自动转换) /** * 将java.sql.Timestamp对象转化为java.util.Date对象 ...
  • 达梦数据库时间类型的使用介绍

    千次阅读 2020-02-13 21:02:56
    数据库的日常使用过程中,无论是记录服务启动时间,还是存储前端应用中的订单时间,都离不开使用各类日期类型,本文就将给大家介绍DM7中各种时间类型的区别和使用注意事项。 一.DM7中时间日期类型简介 DM7中常用...
  • Pg数据库sql语句,时间格式转换问题

    千次阅读 2020-04-26 10:35:48
    Pg数据库sql语句,时间格式转换问题 今天发现一个奇怪的问题,sql语句查出来的时间数据库里存的值不一样,经过同事反复测试才知道,最好转换的时候用 格式,大家看下面三种格式的输出结果吧 用第二种的话,会将...
  • SQL数据库字符串与时间相互转换

    千次阅读 2020-05-25 22:47:42
    SQL数据库字符串与时间相互转换,字符串转日期时间格式,日期时间格式转字符串格式。
  • 安卓的时间转换--数据库Date类型

    千次阅读 2017-09-25 21:59:47
    我的时间是存在sqllite中的,且时间的格式为Date类型,取出后想转换成yyyy-MM-dd格式,结果始终都是解析失败。时间为Mon Sep 25 20:03:08 GMT+08:00 2017。 吐槽一下java,时间转换真是麻烦,如果用.net转换时间的话...
  • 大大减少程序员、DBA、实施人员将大型数据库进行迁移时的等待、测试和调试时间,减少公司为了测试某系统转换到新数据库系统时的人力成本。 DB2DB 提供了如下主要功能: · 任意类型数据库间进行转换 · 数据库表...
  • 数据库日期格式转换

    千次阅读 2017-10-20 13:49:34
     往数据库存储的时候可以接收 java.util.Date类型 再用getTime()方法得到代表那个Date对象的long值,再以这个long值 构造一个Timestamp对象 存进数据库中。  从存数据库里取的时候,可以先得到Timestamp用他的...
  • Java与数据库时间格式转换

    千次阅读 2018-09-11 09:20:40
    import ....fasterxml .jackson .annotation .JsonFormat ; import org .springframework ...@JsonFormat:是将从数据库取出的日期格式...数据库的日期类型是TimeStamp 这样就可以统一从数据库取出和插入的日期格式。
  • MySQL常用类型转换函数总结

    万次阅读 2019-03-25 11:50:27
    MySQL函数,常用类型转换函数总结 1、Concat函数。 连接字符串常用:concat函数。如sql查询条件的like查询,AND c.name like concat(#{param.name},'%') 将Int 转为varchar经常用 concat函数,比如concat(8,'0') ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 372,231
精华内容 148,892
关键字:

数据库时间类型转换