当前位置:首页 » 编程语言 » javasqldate

javasqldate

发布时间: 2022-06-23 06:13:08

1. java.sql.Date,java.sql.Time和java.sql.Timestamp什么区别

【父类】java.util.Date日期格式为:年月日时分秒
【子类】java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据]
【子类】java.sql.Time日期格式为:时分秒
【子类】java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)

针对不同的数据库选用不同的日期类型
·Oracle的Date类型,只需要年月日,选择使用java.sql.Date类型
·MS Sqlserver数据库的DateTime类型,需要年月日时分秒,选择java.sql.Timestamp类型

------------------------------------------

四种对象内部均使用系统时间作为标准数据

·系统时间:自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数,即格林尼治标准时间GMT) ·本地时间:根据时区不同打印出来的时间[当时区为GMT+0时,系统时间与本地时间相同]我们使用的是以本地时间为参考标准的

//java.util.Date 转换成 java.sql.Date 格式
try{
SimpleDateFormat DateFormate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date date1 = DateFormate.parse("2011-5-31 14:40:50");
java.sql.Date sqlDate = new java.sql.Date(date1.getTime());
System.out.println(DateFormate.format(sqlDate));
}catch (Exception ex) {
System.out.println(ex.getMessage());
}

//java.sql.Date 转换成 java.util.Date 格式
java.sql.Date sqlDate1=java.sql.Date.valueOf("2005-12-12");
java.util.Date utilDate1=new java.util.Date(sqlDate1.getTime());
System.out.println("java.sql.Date 转换成 java.util.Date 格式:"+f.format(utilDate1));

//java.util.Date转换java.sql.Timestamp
new java.sql.Timestamp(new java.util.Date().getTime());//此处IDE报错

//java.util.Date转换java.sql.Time
new java.sql.Time(new java.util.Date().getTime());

Timestamp timestamp = new Timestamp(System.currentTimeMillis());

我们可以使用DateFormat处理字符串来定义时间日期的格式
注:String都是先转换为java.util.Date,然后再转换成所需的格式

2. java中java.sql.Date

java.sql.Time 和 java.sql.Date 都没有不接受任何参数的构造函数, 分别接收的是 Long型的 Time 和 Date .

比如!

Date date = new Date(System.currentTimeMillis());
System.out.println(date);

得到当前时间!

3. 为什么有java.sql.date

java.util.Date 是 java.sql.Date 的父类;
java.util.Date 就是在除了SQL语句的情况下面使用,我们通常格式化或者得到当前时间都是用他。
java.sql.Date 是针对SQL语句使用的,一般在读写数据库的时候用他,
因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date

4. java中sql的date怎么写

java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分
java.util.Date是在除了SQL语句的情况下面使用的。

它们都有getTime方法返回毫秒数,自然就可以直接构建。 java.util.Date 是 java.sql.Date 的父类,前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他,后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date。
java.sql.Date转为java.util.Date
java.sql.Date date=new java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());

java.util.Date转为java.sql.Date
java.util.Date utilDate=new Date();
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
java.util.Date utilDate=new Date();
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
java.sql.Time sTime=new java.sql.Time(utilDate.getTime());
java.sql.Timestamp stp=new java.sql.Timestamp(utilDate.getTime());

这里所有时间日期都可以被SimpleDateFormat格式化format()
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
f.format(stp);
f.format(sTime);
f.format(sqlDate);
f.format(utilDate)
java.sql.Date sqlDate=java.sql.Date.valueOf(" 2005-12-12");
utilDate=new java.util.Date(sqlDate.getTime());

另类取得年月日的方法:
import java.text.SimpleDateFormat;
import java.util.*;
java.util.Date date = new java.util.Date();
//如果希望得到YYYYMMDD的格式SimpleDateFormat
sy1=new SimpleDateFormat("yyyyMMDD");
String dateFormat=sy1.format(date);
//如果希望分开得到年,月,日SimpleDateFormat
sy=new SimpleDateFormat("yyyy");
SimpleDateFormat sm=new SimpleDateFormat("MM");
SimpleDateFormat sd=new SimpleDateFormat("dd");
String syear=sy.format(date);
String smon=sm.format(date);
String sday=sd.format(date)

5. 如何正确比较日期 java.sql.Date

java.sql.Date比较:
import java.sql.Date;
例如今天是2010-12-2
Date d1 = new Date(System.currentTimeMili());
Date d2 = new Date(System.currentTimeMili()+1);//比d1晚1毫秒
日期上,我们认为d1和d2是相等的
但是
System.out.println(d1.before(d2));
输出结果是true;
其实我们希望看到的是这两个对象在日期上是相等的。
因为我们只关心“日期”,而“2010-12-2”不等于“2010-12-2”
这个结果显然是我们所不能接受的。
究其原因,是因为Date内封装了一个精确到毫秒的表示时间的
private transient long fastTime;
而before和after的函数的实现如下,都是判断fastTime的值,所以达不到我们只比较日期的要求。
public boolean before(Date when) {
return getMillisOf(this) < getMillisOf(when);
}
public boolean after(Date when) {
return getMillisOf(this) > getMillisOf(when);
}
把日期格式成标准的“年月日”,然后对格式化后的对象进行比较,得到比较的结果
本文给出一种“格式成标准化”的方式
Date d1_temp = java.sql.Date.valueOf(d1.toString());
Date d2_temp = java.sql.Date.valueOf(d2.toString());
System.out.prinltn(d1_temp.equals(d2_temp));//输出结果是true;
System.out.prinltn(d1_temp.before(d2_temp));//输出结果是false;
System.out.prinltn(d1_temp.after(d2_temp));//输出结果是false;
需要逻辑的话,可以写成
if(d1_temp.before(d2_temp)){
.........
}

6. 如何在java程序中获取java.sql.Date类型的当前系统时间

用System.currentTimeMillis()方法来实现 。

代码如下:

java.sql.DatecurrentDate=newjava.sql.Date(System.currentTimeMillis());

说明:
返回long类型,一般用于获取某个方法或其它的执行时间差,在开始前获取一次,在结束时获取一次,结束时间减去开始时间,得到执行时间。

7. java.util.Date和java.sql.Date的区别及应用

1) java.sql.Date是java.util.Date的子类,是一个包装了毫秒值的瘦包装器,允许 JDBC 将毫秒值标识为 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。 为了与 SQL DATE 的定义一致,由 java.sql.Date 实例包装的毫秒值必须通过将时间、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。 说白了,java.sql.Date就是与数据库Date相对应的一个类型,而java.util.Date是纯java的Date。
2)JAVA里提供的日期和时间类,java.sql.Date和java.sql.Time,只会从数据库里读取某部分值,这有时会导致丢失数据。例如一个包含2002/05/22 5:00:57 PM的字段,读取日期时得到的是2002/05/22,而读取时间时得到的是5:00:57 PM. 你需要了解数据库里存储时间的精度。有些数据库,比如MySQL,精度为毫秒,然而另一些数据库,包括Oracle,存储SQL DATE类型数据时,毫秒部分的数据是不保存的。以下操作中容易出现不易被发现的BUG:获得一个JAVA里的日期对象。 从数据库里读取日期 试图比较两个日期对象是否相等。如果毫秒部分丢失,本来认为相等的两个日期对象用Equals方法可能返回false。.sql.Timestamp类比java.util.Date类精确度要高。这个类包了一个getTime()方法,但是它不会返回额外精度部分的数据,因此必须使用...
总之,java.util.Date 就是Java的日期对象,而java.sql.Date 是针对SQL语句使用的,只包含日期而没有时间部分。

8. JAVA怎么给一个sql.Date赋值

java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分java.util.Date是在除了SQL语句的情况下面使用的。它们都有getTime方法返回毫秒数,自然就可以直接构建。java.util.Date是java.sql.Date的父类,前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他,后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date。java.sql.Date转为java.util.Datejava.sql.Datedate=newjava.sql.Date();java.util.Dated=newjava.util.Date(date.getTime());java.util.Date转为java.sql.Datejava.util.DateutilDate=newDate();java.sql.DatesqlDate=newjava.sql.Date(utilDate.getTime());java.util.DateutilDate=newDate();java.sql.DatesqlDate=newjava.sql.Date(utilDate.getTime());java.sql.TimesTime=newjava.sql.Time(utilDate.getTime());java.sql.Timestampstp=newjava.sql.Timestamp(utilDate.getTime());这里所有时间日期都可以被SimpleDateFormat格式化format()SimpleDateFormatf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");f.format(stp);f.format(sTime);f.format(sqlDate);f.format(utilDate)java.sql.DatesqlDate=java.sql.Date.valueOf("2005-12-12");utilDate=newjava.util.Date(sqlDate.getTime());另类取得年月日的方法:importjava.text.SimpleDateFormat;importjava.util.*;java.util.Datedate=newjava.util.Date();//如果希望得到YYYYMMDD的格式SimpleDateFormatsy1=newSimpleDateFormat("yyyyMMDD");StringdateFormat=sy1.format(date);//如果希望分开得到年,月,日SimpleDateFormatsy=newSimpleDateFormat("yyyy");SimpleDateFormatsm=newSimpleDateFormat("MM");SimpleDateFormatsd=newSimpleDateFormat("dd");Stringsyear=sy.format(date);Stringsmon=sm.format(date);Stringsday=sd.format(date)

9. 如何取java.sql.Date中的年,月,日

  • java.sql.Datesdate=newjava.sql.Date(System.currentTimeMillis());

  • //方法一(不建议使用)

  • System.out.println("Year:"+sdate.getYear());

  • System.out.println("Month:"+sdate.getMonth());

  • System.out.println("Date:"+sdate.getDate());

  • //方法二

  • java.text.SimpleDateFormatsformat=newjava.text.SimpleDateFormat();

  • sformat.applyPattern("yyyy");

  • System.out.println("Year:"+sformat.format(sdate));

  • sformat.applyPattern("MM");

  • System.out.println("Month:"+sformat.format(sdate));

  • sformat.applyPattern("dd");

  • System.out.println("Date:"+sformat.format(sdate));

热点内容
wampphp升级 发布:2025-02-05 18:50:53 浏览:918
源码地带 发布:2025-02-05 18:46:37 浏览:613
我的世界服务器怎么骑别人的头 发布:2025-02-05 18:46:32 浏览:89
怎么卸载ftp账号 发布:2025-02-05 18:41:52 浏览:62
SQL指定的服务并未以 发布:2025-02-05 18:40:09 浏览:972
电脑连接不了服务器什么意思 发布:2025-02-05 18:34:46 浏览:355
2015版dw怎么配置站点 发布:2025-02-05 18:33:37 浏览:429
php数组中重复值 发布:2025-02-05 18:16:59 浏览:366
分布式存储优点 发布:2025-02-05 18:15:29 浏览:644
征婚交友源码 发布:2025-02-05 17:45:24 浏览:918