总结:sql中的时间转 util的时间直接赋值即可;反过来,必须先吧util下的时间转换成毫秒,再通过sql的构造器生成sql的时间格式。

1Java中的时间类型

java.sql包下给出三个与数据库相关的日期时间类型,分别是:

l Date:表示日期,只有年月日,没有时分秒。会丢失时间;

l Time:表示时间,只有时分秒,没有年月日。会丢失日期;

l Timestamp:表示时间戳,有年月日时分秒,以及毫秒。

这三个类都是java.util.Date的子类。

2时间类型相互转换

把数据库的三种时间类型赋给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;

当需要把java.util.Date转换成数据库的三种时间类型时,这就不能直接赋值了,这需要使用数据库三种时间类型的构造器。java.sql包下的Date、Time、TimeStamp三个类的构造器都需要一个long类型的参数,表示毫秒值。创建这三个类型的对象,只需要有毫秒值即可。我们知道java.util.Date有getTime()方法可以获取毫秒值,那么这个转换也就不是什么问题了。

java.utl.Date d = new java.util.Date();

java.sql.Date date = new java.sql.Date(d.getTime());//会丢失时分秒

Time time = new Time(d.getTime());//会丢失年月日

Timestamp timestamp = new Timestamp(d.getTime());

3代码

我们来创建一个dt表:

CREATE TABLE dt(

d DATE,

t TIME,

ts TIMESTAMP

)

下面是向dt表中插入数据的代码:

@Test

public void fun1() throws SQLException {

Connection con = JdbcUtils.getConnection();

String sql = "insert into dt value(?,?,?)";

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 fun2() throws SQLException {

Connection con = JdbcUtils.getConnection();

String sql = "select * from dt";

PreparedStatement pstmt = con.prepareStatement(sql);

ResultSet rs = pstmt.executeQuery();

rs.next();

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);

}

时间类型

数据库类型与java中类型的对应关系:

DATE -> java.sql.Date

TIME -> java.sql.Time

TIMESTAMP -> java.sql.Timestamp

l 领域对象(domain)中的所有属性不能出现java.sql包下的东西!即不能使用java.sql.Date;

l ResultSet#getDate()返回的是java.sql.Date()

l PreparedStatement#setDate(int, Date),其中第二个参数也是java.sql.Date

时间类型的转换:

l java.util.Date -> java.sql.Date、Time、Timestamp

把util的Date转换成毫秒值

使用毫秒值创建sql的Date、Time、Timestamp

java.util.Date date = new java.util.Date();

long l = date.getTime();//util的时间获取毫秒值

java.sql.Date sqlDate = new java.sql.Date(l);

l java.sql.Date、Time、Timestamp ->java.util.Date

这一步不需要处理了:因为java.sql.Date是java.util.Date;

java时间定义什么类型_1 Java中的时间类型相关推荐

  1. 对导入的 excel 的时间的处理 将excel表中的时间,转成 标准的时间

    对导入的 excel 的时间的处理 将excel表中的时间,转成 标准的时间 export const formatDate = (numb, format) => {const time = ...

  2. java的异常有哪些类_Java中的异常类型有哪些

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...

  3. Effective Java之请不要在新代码中使用原生态类型(二十三)

    1.泛型与原生态类型的概念 泛型就是带一个或多个类型参数E的类或者接口,而原生态类型是不带任何实际类型的泛型,例如List是原生态类型,List < String >或者List< ...

  4. pandas 如何把时间转成index_pandas将字段中的字符类型转化为时间类型,并设置为索引...

    假设目前已经引入了 pandas,同时也拥有 pandas 的 DataFrame 类型数据. import pandas as pd 数据集如下 df.head(3) date open close ...

  5. mysql数据库中常用的类型_MySQL数据库中常用字段类型

    MySQL数据库中常用字段类型 整数型:TINYINT,SMALLINT,INT,BIGINT 小数型:FLOAT,DOUBLE,DECIMAL(M,D) 字符型:CHAR,VARCHAR 日期型:D ...

  6. oracle锁类型tx,Oracle中的锁类型

    Oracle中的锁类型主要分以下3种: DML锁(DML lock):DML 代表数据操纵语言(Data Manipulation Language).一般来讲,表示select,insert,upd ...

  7. 如何用python处理excel中时间重合_python读取Excel文件中的时间,并计算时间间隔...

    以此Excel文件为例: 1.python读取Excel文件中的时间 import xlrd #读取Excel文件 workbook = xlrd.open_workbook('C:/Users/12 ...

  8. mysql中时间的储存方式_数据库 中“日期/时间”存储方式

    Access中: Access 在内部以 双精度浮点数的形式存储"日期/时间"值.每一个此类数值均包含日期和时间两部分.小数点左边的整数部分表示日期.小数点右边的小数部分表示时间. ...

  9. c语言 地址类型,C语言中的地址类型

    第!!卷!第"期 #$%&!!!'$&" ! ! ! ! ! 平!原!大!学!学!报 ()*+',-)./0'12*,'*'0#3+4052 ! ! ! ! !66 ...

  10. linux怎么找指定类型文件,Linux中查找指定类型文件以及删除例子

    在Linux服务器上运行Weblogic服务器,每次需要关闭Weblogic服务器后,都会在domain下留下一些*.lok的文件,导致下次启动的时候因为这些文件无法启动,因此,需要删除产生的所有.l ...

最新文章

  1. WSL与Windows交互实践
  2. 干粮 -- 计算机程序设计艺术(The Art of Computer Design) - 2
  3. 得到ios设备的屏幕尺寸信息
  4. 【粉丝福利】今天不谈技术,只送福利!
  5. python--装饰器初阶
  6. Java将每半年发布一个版本
  7. docker学习(三) 安装docker的web可视化管理工具
  8. char型指针与其它指针或数组的细节
  9. 算法笔记练习 题解合集
  10. 计算机二级c语言word答案,全国计算机考试二级C语言南开100题答案(Word版)
  11. Scrapy 链家网爬取(存储到MySQL、json、xlsx)
  12. Android ApiDemos示例解析(110):Views-Data Widgets-1. Dialog
  13. 中国莽草酸行业市场深度调查报告(2022版)
  14. 进阶-第28__深度探秘搜索技术_实战掌握误拼写时的fuzzy模糊搜索技术
  15. 倒排索引(Inverted index)
  16. ServiceMesh实战-服务网格是什么?
  17. 弘辽科技:拼多多24小时不发货怎么办?如何发货?
  18. php 极光短信发送 api
  19. 基础欠缺,是致命的。
  20. 远程辅助必备免费神器ToDesk远程控制软件(答辩,远程,调试,办公)必备远程工具

热门文章

  1. Q4营收超预期但亏损加大 OKTA还能吸引投资者继续“上车”吗?
  2. 专题图制作(点密度图、分层设色图/等级图、单值图、柱状图、饼状图)
  3. vue 封装 瀑布流
  4. 第一卷 无忧考吧 了解
  5. pb setprofilestring()函数中使用相对路径
  6. AIX下磁带机共享问题
  7. 斯坦福大学公开课 :机器学习课程(Andrew Ng)——1、整体看一看
  8. typescript 文档阅读笔记-Unions and Intersection Types
  9. 软件分享系列之【PS2020下载安装】并持续分享中...
  10. Matlab建模—导弹追踪问题