jdbc 日期时间相关的类型
1、sql.Date
sql包中的日期类Date是util包中Date类的子类,实际上也是util.Date类的子集。它只处理年月日,而忽略小时和分秒,用以代表SQL的DATE信息。
Date类的构造方法为:
public Date(int year, int mouth, int day)
其中参数格式同util.Date类的构造方法一样,年参数为所需设定的年份减去1900所得的整数值,月参数为0至11,日参数为1至31。如1998年1月23日所对应创建日期类的方法调用为:
Date d=new Date(98,0,23);
Date类还提供两个与String类互相转换的方法,分别是:
public static Date valueOf(String s)
将字符串类参数转换为日期类对象。其中String类参数S的格式为“年-月-日”,加“1997-04-12”。
public String toString()
将日期类对象转换为String类对象表示,同样采用“年-月-日”的格式。
2、sql.Time
该类是util.Date类的子类,也是它的一个子集。在Time类里,只处理小时和分秒,代表SQL的TIME类型。它与sql.Date合起来才表示完整的util.Date类信息。
Time类的构造方法为:
public Time(int hour,int minute,int second)
其中小时参数值为0至23,分秒参数取值均为0至59。
与sql.Date一样,Time类也定义了两个与String类互相转换的函数ValueOf和String。不同的是String类对象的格式为“小时:分:秒”,如“12:26:06”。
3、sql.Timestamp
这个类也是util.Date类的子类,其中除了包含年月日、小时和分秒和信息之外,还加入了纳秒信息(nanosecond),1纳秒即1毫微秒。Timestamp类用来代表SQL时间戳(Timestamp)类型信息。
Timestamp类的构造方法为:
public Timestamp(int year, int mouth, int date, int hour, int minute, int second, int nano)其中纳秒参数的取值从0至999,999,999,其余各参数同前。
Timestamp类特别定义了设置和获得纳秒信息的方法,分别是
public getnanos()
获取时间戳的纳秒部分
public void setNanos(int n)
以给定数值设置时间戳的纳秒部分
4、sql.Types
Types类是Object类的直接子类。在这个类中以静态常量的形式定义了可使用的SQL的数值类型。所有这些类型常量都以前缀
public final static int
的形式标明是公有静态整数,且不可改动。具体的类型名和含义如表11.1所示。其中OTHER用来代表数据库定义的特殊数据,可以用getObject或setObject方法将其映射为一个Java的Object对象。
表11.1 Types中定义的SQL类型
|
类型名 |
含义 |
|
BIGINT |
长整型数 |
|
BINARY |
二进制数 |
|
BIT |
比特数 |
|
CHAR |
字符型 |
|
DATE |
日期型 |
|
DECIMAL |
十进制数 |
|
DOUBLE |
双精度数 |
|
FLOAT |
浮点数 |
|
INTEGER |
整数 |
|
LONGVARBINARY |
可变长型二进制数 |
|
LONGVARCHAR |
可变长型字符 |
|
NULL |
空类型 |
|
NUMERIC |
数值型 |
|
OTHER |
其他类型 |
|
REAL |
实数 |
|
SMALLINT |
短整型 |
|
TIME |
时间类型 |
|
TIMESTAMP |
时间戳类型 |
|
TINYINT |
微整型 |
|
VARBINARY |
可变二进制数 |
|
VARCHAR |
可变字符型 |
二、SQL与Java
由于SQL数据类型与Java的数据类型不一致,因而在使用Java类型的应用程序与使用SQL类型的数据库之间,需要某种读写类型转换机制。实际上我们前面介绍的ResultSet类的“get”系列方法,Statement及其子类的“set“系列方法和registerOutParameter方法,都是这一转换机制的组成部分。
需要进行的读写转换包括三种情况:
第一种情况是从数据库中读取数值后,存放在ResultSet对象中的是SQL类型的数据。而调用“get”系列方法时,JDBC才将SQL类型转换为指定的Java类型 。在一般情形下,SQL类型相对应的Java类型如表11-2所示。
表11.2 SQL类型一般所对应的Java类型
|
SQL type |
Java type |
|
CHAR |
java.lang.String |
|
VARCHAR |
java.lang.String |
|
LONGVARCHAR |
java.lang.String |
|
NUMERIC |
java.lang.Bignum |
|
DECIMAL |
java.lang.Bignum |
|
BIT |
boolean |
|
TINYINT |
byte |
|
SMALLINT |
short |
|
INTEGER |
int |
|
BIGINT |
long |
|
REAL |
float |
|
FLOAT |
double |
|
DOUBLE |
double |
|
BINARY |
byte[] |
|
VARBINARY |
byte[] |
|
LONGVARBINARY |
byte[] |
|
DATE |
java.sql.Date |
|
TIME |
java.sql.Time |
|
TIMESTAMP |
java.sql.Timestamp |
当然,在使用时用户可以指定将SQL类型转换为某个需要的特定类型而不遵循表11.2。例如在结果集中的某个FLOAT型数值,依标准转换应用使用getDouble方法获取,但实际上按用户的不同需求也可以使用getFloat,getInt,甚至gefByte方法获取,但只是有可能影响数值精确度。
jdbc 日期时间相关的类型的更多相关文章
- Java_日期时间相关类
目录 Date类(java.util.date) Calendar类(java.util.Calendar) SimpleDateFormat类(java.text.SimpleDateFormat) ...
- android内部培训视频_第三节(3)_常用控件(ViewPager、日期时间相关、ListView)
第三节(2):常用控件之ViewPager.日期时间相关.ListView 一.ViewPager 实例:结合PagerAdapter滑动切换图片 二.日期时间相关:AnalogClock\Dig ...
- PHPExcel对于Excel中日期和时间类型的处理
PHPExcel是一款优秀的处理Excel文件读写的开源PHP Library,能够给我们提供强大的Excel读写能力,本文针对Excel处理过程中关于日期和时间类型的处理进行深入的讨论.PHPExc ...
- SQL Server的日期和时间类型
Sql Server使用 Date 表示日期,time表示时间,使用datetime和datetime2表示日期和时间. 1,秒的精度是指使用多少位小数表示秒 DateTime数据类型秒的精度是3,D ...
- 第二章 Mysql 数据类型简介--(整数类型、浮点数类型和定点数类型,日期与时间类型,字符串类型,二进制类型)
第一节:整数类型.浮点数类型和定点数类型 1,整数类型 2,浮点数类型和定点数类型 M 表示:数据的总长度(不包括小数点):D 表示:小数位:例如 decimal(5,2) 123.45存入数据的时候 ...
- 数据库中存储日期的字段类型究竟应该用varchar还是datetime ?
背景: 前段时间在百度经验看到一篇文章<如何在电脑右下角显示你(爱人)的名字>,之前也听过这个小技巧,但没真正动手设置过.所以出于好奇就实践了一下. 设置完成后的效果例如以下.右下角的时间 ...
- T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst、语言版本影响!
原文:T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受 @@DateFirst.语言版本影响! CSDN 的 Blog 太滥了!无时不刻地在坏! 开始抢救性搬家 ...
- SQL 中的日期和时间类型
在我们SQL中一般支持三种数据类型. date:日历日期,包括年(四位),月和日. time: 一天中的时间,包括小时,分和秒.可以用变量time(p)来表示秒的小数点后的数字位数(默认是0). 通过 ...
- MySQL数据类型--日期和时间类型
MySQL中的多种时间和格式数据类型 日期和时间类型是为了方便在数据库中存储日期和时间而设计的.MySQL中有多种表示日期和时间的数据类型. 其中,year类型表示时间,date类型表示日期,time ...
随机推荐
- TeeChart注册方法
- 让html元素随浏览器的大小自适应垂直居中
转自:http://www.cnblogs.com/linjiqin/archive/2011/06/15/2081362.html 表格可以实现td中的元素垂直居中显示,但是前提条件必须定义td的高 ...
- 讓 MySQL 能夠用 EF6
http://www.dotblogs.com.tw/yc421206/archive/2014/03/14/144395.aspx 要讓 MySQL 能夠用 EF6,我花了一點時間,在此記錄一下 安 ...
- 第五根k线
无论是下落还是上涨的一波,到第五根k线就要注意了.要么加速,不然就要翻转了
- Win7-64bit系统下安装mysql的ODBC驱动
安装过mysql数据库后,有些软件在调用mysql数据库时不会直接调用,需要安装mysql数据库的ODBC驱动,再来调用.这里就介绍下,如何在win7系统下安装mysql的ODBC驱动. Win7系统 ...
- “无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性 “之解决
今天在学习插件系统设计的时候遇到一个问题:“System.Reflection.ReflectionTypeLoadException: 无法加载一个或多个请求的类型. 于是百度一下,很多内容都差不多 ...
- PDA移动开单系统-PDA开单,手机开单,开单APP,移动开单,移动POS开单
仓库的送货员.收货员.仓管员人手一部PDA,门店可以直接PDA扫描商品下订单或输入编号.拼音码等下订单,订单会直接录入到仓库管理软件中. 仓管在系统中可以一目了然的查询商品库存和订单需求数量.根据库存 ...
- mysql之对触发器的操作
1. 为什么要使用触发器? 触发器与函数有些类似,都需要声明,执行.但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发,激活,从而实现执行. 当触发DELETE,INSERT,UPDA ...
- java生成字符串md5函数类
import java.security.MessageDigest; /** * Md5 工具 */ public class Md5Util { private static MessageDig ...
- 【Linux程序设计】之环境系统函数综合实验
这个系列的博客贴的都是我大二的时候学习Linux系统高级编程时的一些实验程序,都挺简单的.贴出来纯粹是聊胜于无. 实验题目:Linux环境下系统函数综合实验 实验目的:熟悉并掌握Linux环境下数学函 ...