精华内容
下载资源
问答
  • java.util.Date是不能直接插入数据库中的,虽然它包含了日期时分秒java.sql.Date可以直接插入数据库,但是它只有日期而没有时间; java.sql.Time可以直接插入数据库,但是它只有时间,没有日期 ...
    •   java.util.Date是不能直接插入数据库中的,虽然它包含了日期和时分秒。

    •   java.sql.Date可以直接插入数据库,但是它只有日期而没有时间;

    •   java.sql.Time可以直接插入数据库,但是它只有时间,没有日期

    • Java.util.Date需要转换为Java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Java.sql.Date类的子类Timestamp

     

    使用java.sql.Timestamp来向数据库插入。在程序中,我们常常是使用的java.util.Date,所以就要将java.util.Date转化为java.sql.Timestamp


     

    代码如下:

    import java.sql.Timestamp;

    // 添加联系人

    public void insertStu(Stu stu) {

    Connection conn = null;

    PreparedStatement stmt = null;

    try {

    // 获取连接

    conn = MyJdbcUtil.getConnection();

    // 准备SQL语句

    String sql = "INSERT INTO stu(xm,xb,csrq,fs,gmt_create,status) VALUES(?,?,?,?,?,?)";

    // 预编译

    stmt = conn.prepareStatement(sql);

    // 设置参数

    stmt.setString(1, stu.getXm());

    stmt.setString(2, stu.getXb());

    stmt.setDate(3,new java.sql.Date(stu.getCsrq().getTime()));

    stmt.setBigDecimal(4, stu.getFs());

    stmt.setTimestamp(5,new Timestamp(stu.getGmt_create().getTime()));

    stmt.setString(6, stu.getStatus());

    // 执行

    stmt.executeUpdate();

     

    } catch (SQLException e) {

    e.printStackTrace();

    throw new RuntimeException(e);

    } finally {

    MyJdbcUtil.close(conn, stmt);

    }

    }

     

    转载于:https://www.cnblogs.com/zbguolei/p/9948236.html

    展开全文
  • 一、关于向MySQL数据库中插入时间只有日期没有时分秒  java.util.Date是不能直接插入数据库中的,虽然它包含了日期时分秒。  java.sql.Date可以直接插入数据库,但是它只有日期而没有时间;  java.sql.Time...

    一、关于向MySQL数据库中插入时间只有日期没有时分秒  
      java.util.Date是不能直接插入数据库中的,虽然它包含了日期和时分秒。
      java.sql.Date可以直接插入数据库,但是它只有日期而没有时间;
      java.sql.Time可以直接插入数据库,但是它只有时间,没有日期
    Java.util.Date需要转换为Java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Java.sql.Date类的子类Timestamp
     使用java.sql.Timestamp来向数据库插入。在程序中,我们常常是使用的java.util.Date,所以就要将java.util.Date转化为java.sql.Timestamp
    1.插入数据时:

     

    Connection conn = null;  
            PreparedStatement psmt = null;  
            ResultSet rs = null;  
      
            try {  
                conn = DBUtil.getConnection();  
                psmt = conn.prepareStatement(sql);  
                psmt.setString(1, message.getmTitle());  
                psmt.setString(2, message.getmContent());  
                psmt.setTimestamp(3, new Timestamp(message.getmPublishTime().getTime()));//将java.util.Date转化为java.sql.Timestamp
                psmt.setInt(4, message.geteId());  
                psmt.execute();  
      
            } catch (Exception e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();

    2.取出数据时:

     

         try {  
                conn = DBUtil.getConnection();  
                psmt = conn.prepareStatement(sql);  
                rs = psmt.executeQuery();  
                  
                while(rs.next()){  
                    m=new Message();  
                    m.setmId(rs.getInt("m_id"));  
                    m.setmTitle(rs.getString("m_title"));  
                    m.setmContent(rs.getString("m_content"));  
                    m.setmPublishTime(rs.getTimestamp("m_publishTime"));//直接取出时间戳类型数据
                    m.seteId(rs.getInt("e_id"));  
                    messages.add(m);  
                }  
            } catch (Exception e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();

    二.从mysql数据库取出时间类型数据到jsp页面显示时多了个0,可以用如下方式解决:

     

         用jstl的<fmt:formatDate>标签,(项目需要引入jstl的jar,页面需要引入标签库<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>)

     

      1)用<fmt:formatDate />标签格式化一下

                 <c:forEach var="me" items="${me}">  
                    <tr>  
                        <td width="15%">${me.message.mTitle}</td>  
                        <td width="20%">${me.message.mContent}</td>  
                        <td width="10%"><fmt:formatDate value="${me.message.mPublishTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>  
                        <td width="10%">${me.employee.eName}</td>  
                        <td width="10%">回复(..)</td>  
                    </tr>  
                </c:forEach> 


     
     

    展开全文
  • java.sql.Time可以直接插入数据库,但是它只有时间,没有日期Java.util.Date需要转换为Java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Java.sql.Date类的子类Timestamp...

    java.util.Date是不能直接插入数据库中的,虽然它包含了日期和时分秒。

    java.sql.Date可以直接插入数据库,但是它只有日期而没有时间;

    java.sql.Time可以直接插入数据库,但是它只有时间,没有日期

    Java.util.Date需要转换为Java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Java.sql.Date类的子类Timestamp

    使用java.sql.Timestamp来向数据库插入。在程序中,我们常常是使用的java.util.Date,所以就要将java.util.Date转化为java.sql.Timestamp

    代码如下:

    import java.sql.Timestamp;

    // 添加联系人

    public void insertStu(Stu stu) {

    Connection conn = null;

    PreparedStatement stmt = null;

    try {

    // 获取连接

    conn = MyJdbcUtil.getConnection();

    // 准备SQL语句

    String sql = "INSERT INTO stu(xm,xb,csrq,fs,gmt_create,status) VALUES(?,?,?,?,?,?)";

    // 预编译

    stmt = conn.prepareStatement(sql);

    // 设置参数

    stmt.setString(1, stu.getXm());

    stmt.setString(2, stu.getXb());

    stmt.setDate(3,new java.sql.Date(stu.getCsrq().getTime()));

    stmt.setBigDecimal(4, stu.getFs());

    stmt.setTimestamp(5,new Timestamp(stu.getGmt_create().getTime()));

    stmt.setString(6, stu.getStatus());

    // 执行

    stmt.executeUpdate();

    } catch (SQLException e) {

    e.printStackTrace();

    throw new RuntimeException(e);

    } finally {

    MyJdbcUtil.close(conn, stmt);

    }

    }

    展开全文
  • java技术 |字号 订阅昨天,阿堂(网络时空)在开发web项目中,发现提取Oracle中某几个Date类型的字段时,发现提出来的Date型值,只有“年月日”,没有“时分秒”显示出来,实际业务中,是要求页面上显示的日期要求是...

    J2EE项目中用使用Date类型不显示时分秒的解决方法

    2010-04-21 21:35:00|  分类: java技术 |字号 订阅

    昨天,阿堂(网络时空)在开发web项目中,发现提取Oracle中某几个Date类型的字段时,发现提出来的Date型值,只有“年月日”,没有“时分秒”显示出来,实际业务中,是要求页面上显示的日期要求是有“年月日是分秒”的。这里说明一下,我是用session.createSQLQuery(sql).list()来返回值的,反回的值类型是List(Object[]).虽然,我是用的ssh,由于此处的sql对应的业务情况涉及到复杂的多表查询,如果是用hibernate来作映射的话,难度就非常大了,而且编码会带来很大的难度。。所以这里就委而用原生态的sql或者说标准sql来返回值了。

    具体详细问题如下

    在用ssh中

    对于如下语句

    session.createSQLQuery(sql).list();

    查询,返回一个List

    在对List循环中

    我发现 如 显示日期类型的值时,只显示了“年月日”,没有显示“时分秒”

    for(Object[] obj:session.createSQLQuery(sql).list())

    {

    ...

    System.out.println("收单日期是 "+(Date)obj[5]);

    //只显示了年月日,没有显示"时分秒"了 如2010-03-01

    //oracle数据表中对应字段的值,实际上是03-01-2010 16:31:14

    ...

    }

    折腾了半天后,经网友提醒,和本人的耐心测试,终于找到了解决方法

    方法一

    将Oracel数据库对应表中“收单时间的字段”receive_sheet_time,由原来的Date类型改为timestamp

    然后,在java程序中,由 (java.util.timestamp)obj[5] 这样返回值,就会显示有“年月月时分秒“了。

    如 2010-03-01 14:39:17

    方法二

    OracleOracel数据库对应表中“收单时间的字段”receive_sheet_time,字段继续保持Date类型不变

    将上述sql语句中,返回 “收单日期的字段”receive_sheet_time ,变为

    to_char(loading.receive_sheet_time,'YYYY-MM-DD hh24:mi:ss') as receive_sheet_time

    作为字符串类型来返回值,

    然后在java程序中用,由 (String)obj[5] 这样返回值,就会显示有“年月月时分秒“了。

    如 2010-03-01 14:39:17

    附:至于Date和timestamp类型的区别,我就不多说,朋友们可以到网上一搜就知道了

    原来的sql

    SELECT load_point,

    dispatch_no,

    schedule_no,

    truck_no,

    trans_date,

    trans_company_name,

    departure_time,

    trans_company_code,

    receive_sheet_time,

    dispatch_sheet_time,

    loading_time,

    SUM(expected_qty) AS expected_qty,

    SUM(allocate_qty) AS allocate_qty,

    SUM(real_qty) AS real_qty

    FROM (SELECT odetail.load_point,

    dispatch.dispatch_no,

    odetail.Schedule_No,

    dispatch.trans_company_code,

    dispatch.truck_no,

    TO_CHAR(dispatch.trans_date, 'YYYY-MM-DD') AS trans_date,

    dispatch.trans_company_name,

    odetail.expected_qty,

    odetail.allocate_qty,

    odetail.real_qty,

    loading.receive_sheet_time,

    loading.dispatch_sheet_time,

    loading.loading_time,

    loading.departure_time

    FROM t_dispatch         dispatch,

    t_order_detail     odetail,

    t_dispatch_detail  tdetail,

    t_dispatch_loading loading

    WHERE dispatch.dispatch_no = tdetail.dispatch_no

    AND odetail.order_no = tdetail.order_no

    AND odetail.order_line_no = tdetail.order_line_no

    AND loading.dispatch_no = dispatch.dispatch_no

    AND loading.load_point = odetail.load_point

    AND dispatch.status <> 99

    AND NVL(dispatch.b_cancel, 0) = 0)

    WHERE 1 = 1

    AND TO_CHAR(departure_time, 'YYYY-MM-DD HH24:MI:SS') >=

    '2010-04-07 00:00:07'

    AND TO_CHAR(departure_time, 'YYYY-MM-DD HH24:MI:SS') <=

    '2010-04-07 23:59:07'

    GROUP BY load_point,

    dispatch_no,

    schedule_no,

    truck_no,

    trans_date,

    trans_company_name,

    departure_time,

    trans_company_code,

    receive_sheet_time,

    dispatch_sheet_time,

    loading_time

    ORDER BY dispatch_no, schedule_no, load_point

    新sql语句

    (下述sql语句红色部分,就是我将返回的日期类型,转换为to_char类型返回了。。用方法一时,用原来的sql就行了)

    SELECT load_point,

    dispatch_no,

    schedule_no,

    truck_no,

    trans_date,

    trans_company_name,

    departure_time,

    trans_company_code,

    receive_sheet_time,

    dispatch_sheet_time,

    loading_time,

    SUM(expected_qty) AS expected_qty,

    SUM(allocate_qty) AS allocate_qty,

    SUM(real_qty) AS real_qty

    FROM (SELECT odetail.load_point,

    dispatch.dispatch_no,

    odetail.Schedule_No,

    dispatch.trans_company_code,

    dispatch.truck_no,

    TO_CHAR(dispatch.trans_date, 'YYYY-MM-DD') AS trans_date,

    dispatch.trans_company_name,

    odetail.expected_qty,

    odetail.allocate_qty,

    odetail.real_qty,

    to_char(loading.receive_sheet_time,'YYYY-MM-DD hh24:mi:ss') as receive_sheet_time,

    to_char(loading.dispatch_sheet_time,'YYYY-MM-DD hh24:mi:ss') as dispatch_sheet_time,

    to_char(loading.loading_time,'YYYY-MM-DD hh24:mi:ss') as loading_time,

    to_char(loading.departure_time,'YYYY-MM-DD hh24:mi:ss') as departure_time

    FROM @DBUSer.t_dispatch         dispatch,

    @DBUSer.t_order_detail     odetail,

    @DBUSer.t_dispatch_detail  tdetail,

    @DBUSer.t_dispatch_loading loading

    WHERE dispatch.dispatch_no = tdetail.dispatch_no

    AND odetail.order_no = tdetail.order_no

    AND odetail.order_line_no = tdetail.order_line_no

    AND loading.dispatch_no = dispatch.dispatch_no

    AND loading.load_point = odetail.load_point

    AND dispatch.status <> 99

    AND NVL(dispatch.b_cancel, 0) = 0)

    WHERE 1 = 1

    @var1

    GROUP BY load_point,

    dispatch_no,

    schedule_no,

    truck_no,

    trans_date,

    trans_company_name,

    departure_time,

    trans_company_code,

    receive_sheet_time,

    dispatch_sheet_time,

    loading_time

    ORDER BY dispatch_no, schedule_no, load_point

    展开全文
  • java createSQLQuery().list()返回日期格式没有时分秒的解决方法(转) J2EE项目中用使用Date类型不显示时分秒的解决方法 2010-04-21 21:35:00| 分类: java技术 |字号 订阅  昨天,阿堂(网络时空)在开发...
  • 我们一般再将实体类中的日期类型的数据写入数据库的时候,需要把java.util.Date转换为java.sql.Date,我们使用常规的方法去转换,转换过来的只可以得到年月日。如果需要取得时分秒,可以使用Date类的子类Timestamp。 ...
  •  在开发web项目中,发现提取Oracle中某几个Date类型的字段时,发现提出来的Date型值,只有“年月日”,没有“时分秒”显示出来,实际业务中,是要求页面上显示的日期要求是有“年月日是分秒”的。这里说明一下,我...
  • 在开发web项目中,发现提取Oracle中某几个Date类型的字段时,发现提出来的Date型值,只有“年月日”,没有“时分秒”显示出来,实际业务中,是要求页面上显示的日期要求是有“年月日是分秒”的。  这里说明一下,...
  • 将实体类的属性类型设置为java.sql.Date 如果你想在实体类中使用java.util.Date, 则要注意: 完整的日期时间,要确保jdbcType不填 只需要时间,要指定jdbcType=”TIME” 只需要日期,要指定jdbcType=”DATE” 于是...
  • mybatis 查询出的日期没有时分秒

    千次阅读 2018-06-04 12:57:05
    mapper 文件如下: [code="xml"] [/code] 实体类中字段定义如下: ...java"...mysql中createtime字段是timestamp类型,但是查询后,实体类中的createtime的值只有年月日,时...
  • 对于Ibatis操作Date/Time/DateTime,总结如下:将pojo的属性类型设置为java.sql.Date(或java.sql.Time, java.sql.Timestamp),此时会严格遵循这三种类型的语义。但此方法因存在前文中提到的性能问题,在JDK1.6以前的...
  • 将pojo的属性类型设置为java.sql.Date(或java.sql.Time, java.sql.Timestamp),此时会严格遵循这三种类型的语义。但此方法因存在前文中提到的性能问题,在JDK1.6以前的JDK版本中能少使用就少使用。 如果你想在...
  • 对于Ibatis操作Date/Time/DateTime,总结如下: 将pojo的属性类型设置为java.sql.Date(或java.sql.Time, java.sql.Timestamp),此时会严格遵循这三种类型的语义。但此方法因存在前文中提到的性能问题,在JDK1.6...
  • 总结:sql中的时间转 util的时间直接赋值即可;反过来,必须先吧util下的时间转换成毫秒,再通过sql的构造...lTime:表示时间,只有时分秒,没有年月日。会丢失日期;lTimestamp:表示时间戳,有年月日时分秒,以及...
  • 2.Time:表示时间,只有时分秒,没有年月日。会丢失日期; 3.Timestamp:表示时间戳,有年月日时分秒,以及毫秒。 Java中的时间类 : 1.Java.util.Date 2.Java.sql.Date 对应关系: DATE ->Java.sql.Date TIME ...
  • 由于java.util.Date类型虽然拥有时分秒,但是此类型只是java中的类,并不是数据库时间类型,是不能直接插入数据库中的;所以只能使用java.sql.Date存入数据库,但是它只有日期而没有时间。 问题解...
  • 而util.Date是无法存进数据库中的Date类型,因为数据库中的Date类型只有日期而没有时分秒,数据库中的DateTime类型才是又有日期又有时分秒的 关于转换 //先将String转换为util.Date SimpleDateFormat formatter = ...
  • 应选择java.util.Date,这样实体类就该日期类型就会带有 年月日 时分秒 (yyyy-MM-dd HH:mm:ss)。 而java.sql.Date则只有 年月日,即 (yyyy-MM-dd)。 数据库的日期类型 我用的是mysql数据库,选择的日期格式类型...
  •  Time:表示时间,只有时分秒,没有年月日。会丢失日期; Timestamp:表示时间戳,有年月日时分秒,以及毫秒。 注:这三个类都是java.util.Date的子类。时间类型相互转换 把数据库的三种时间类型赋给java.uti...
  • java.sql.Date 与数据库 Date 相对应的一个类型只有日期部分,时分秒都会设置为 0,如:2019-10-23 00:00:00 要从数据库时间字段取 时、分、秒、毫秒数据,可以使用 java.sql.Timestamp 【...
  • java date mysqldate

    2019-10-11 11:54:00
    Java 中的类型 ...java.sql.Time, 表示时间, 只有时分秒,没有年月日. java.sql.Timestamp, 表示时间戳,有年月日时分秒,以及毫秒. java.util 包下给出的三个与时间相关的类型, 分别是: java.util.Date, 表示...
  • Time:表示时间,只有时分秒,没有年月日。会丢失日期; Timestamp:表示时间戳,有年月日时分秒,以及毫秒。这三个类都是java.util.Date的子类。数据库类型java类型的对应关系: DATE → java.sql.Date TIME.....
  • Time:表示时间,只有时分秒,没有年月日。会丢失日期; Timestamp:表示时间戳,有年月日时分秒,以及毫秒。 这三个类都是java.util.Date的子类。 数据库类型java类型的对应关系: DATE → java.sql.Date TI...
  • Java 中的类型 1. java.sql 包下给出...java.sql.Time表示时间, 只有时分秒,没有年月日 java.sql.Timestamp表示时间戳,有年月日时分秒,以及毫秒 2. java.util 包下给出的三个与时间相关的类型, 分别是: jav...
  •  Date:表示日期只有年月日,没有时分秒。会丢失时间;  Time:表示时间,有年月日时分秒;  Timestamp:表示时间戳,有年月日时分秒,以及毫秒。 这三个类都是java.util.Date的子类。 java.util.Date...
  • 17、时间类型

    2019-11-02 19:54:13
    Date:表示日期只有年月日,没有时分秒,会丢失时间 Time:表时间,只有十分秒,没有年月日,会丢日期 Timestamp:表示时间戳,有年月日时分秒,以及毫秒 数据库类型java类型的对应关系: DATA——java.sql....
  • Java面试知识点3

    2020-12-30 09:21:49
    java.sql.date与数据库Date向对应的一个类型只有日期部分,时分秒都会设置为0,如2020-04-05 00:00:00; 要从数据库时间字段取 时、分、秒、毫秒数据,可以使java.sql.Timestamp。 2…关于构造方法 java类中不写...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

java日期类型只有时分秒

java 订阅