當前位置:首頁 » 編程語言 » javasql時間比較
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

javasql時間比較

發布時間: 2023-03-28 02:42:50

Ⅰ 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語句使用的,只包含日期而沒有時間部分。

Ⅱ 怎麼判斷java.sql.Date類型的日期與 sql 2005 的datetime類型的數據相等

Select CONVERT(varchar(100), GETDATE(), 23)
把GETDATE()換成你要對比的資料庫欄位試試;
如果不行你嘗試著把datetime轉成字元,然後截取字元串做對比。
如果還不行,你網路下。。

Ⅲ java.util.Date和java.sql.Date的區別和相互轉化

java.util.Date是在除了SQL語句的情況下面使用的。
java.sql.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)

Ⅳ java script 提取sql中兩個時間,並計算他們之間的時間差

將時間轉成data類型,a.getdate();會得到1900年到你取出時間的毫秒數,兩個都如此取,相減得到這兩個時間的毫秒差,然後如果你要計算到秒請除以1000,分鍾再除60,小時再除60,天再除24。。。。。。

Ⅳ 通過java如何計算sql資料庫中兩個時間差

Date dt1;//結束時間
Date dt2;//開始時間
System.out.println("dt1="+dt1);
System.out.println("dt2="+dt2);
long l = dt1.getTime() - dt2.getTime(); //獲得兩個時間的毫秒數
System.out.println(l/(24*3600000)+"天"+l/3600000+"小時"+(l%3600000)/60000+"分鍾"+((l%3600000)%60000)/1000+"秒"); //處理毫秒數得到時間小時分鍾秒

Ⅵ 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,然後再轉換成所需的格式

Ⅶ java sql access怎麼比較日期大小

其實只要改變一下思路就可以了!
1、首先建立一個臨時神陸表,結構和目標表一致;假定:原表位sr_tab
create table st_tab as select * from sr_tab where 1==0;
2、將access的數據一次游橡頃性導入到表st_tab
3、執行批量插入語句:
insert sr_tab values(select s* from st_tab where ID not in (select ID from sr_tab ));
這樣的效率比你一如祥條一條判斷至少要快3倍以上。

Ⅷ JAVA 程序中比較時間 從資料庫獲取的時間(一個欄位) = 系統時間 如何用JPQL 實現

Select ***** from *** where 從數物型據庫獲取的時間(一個欄位) = getdate()

db2好像是current date
Select ***** from *** where 從數罩緩猜據庫獲哪緩取的時間(一個欄位) = current date