从数据库中取出了两个date型数据(年-月-日),怎么算出他们相差几天

从数据库中取出了两个date型数据(年-月-日),怎么算出他们相差几天,第1张

从数据库取出来的date类型

比如:现在是2004-03-26 13:31:40

过去是:2004-01-02 11:30:24

我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒

方法一:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try

{

Date d1 = dfparse("2004-03-26 13:31:40");

Date d2 = dfparse("2004-01-02 11:30:24");

long diff = d1getTime() - d2getTime();

long days = diff / (1000 60 60 24);

}

catch (Exception e)

{

}

方法二:

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

javautilDate now = dfparse("2004-03-26 13:31:40");

javautilDate date=dfparse("2004-01-02 11:30:24");

long l=nowgetTime()-dategetTime();

long day=l/(2460601000);

long hour=(l/(60601000)-day24);

long min=((l/(601000))-day2460-hour60);

long s=(l/1000-day246060-hour6060-min60);

Systemoutprintln(""+day+"天"+hour+"小时"+min+"分"+s+"秒");

方法三:

SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

javautilDate begin=dfsparse("2004-01-02 11:30:24");

javautilDate end = dfsparse("2004-03-26 13:31:40");

long between=(endgetTime()-begingetTime())/1000;//除以1000是为了转换成秒

long day1=between/(243600);

long hour1=between%(243600)/3600;

long minute1=between%3600/60;

long second1=between%60/60;

Systemoutprintln(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");

====================================================

java 比较时间大小

String s1="2008-01-25 09:12:09";

String s2="2008-01-29 09:12:11";

javatextDateFormat df=new javatextSimpleDateFormat("yyyy-MM-dd HH:mm:ss");

javautilCalendar c1=javautilCalendargetInstance();

javautilCalendar c2=javautilCalendargetInstance();

try

{

c1setTime(dfparse(s1));

c2setTime(dfparse(s2));

}catch(javatextParseException e){

Systemerrprintln("格式不正确");

}

int result=c1compareTo(c2);

if(result==0)

Systemoutprintln("c1相等c2");

else if(result<0)

Systemoutprintln("c1小于c2");

else

可以

oracle数据库建表date,Oracle数据库中关于日期和时间字段类型 转载

2021-04-02 21:03:04

GUlijiwa古力

码龄4年

关注

Oracle数据库

与日期有关的有三种类型:date,timestamp与interval。DATE和TIMESTAMP类型存储精度可变的固定日期/时间,二者区别是,后者秒可以精确到小数,另外还可以有时区之分。。INTERVAL类型可以很容易地存储一个时间量,如“8个小时”或“30天”。将两个日期相减,就会得到一个时间间隔(INTERVAL);例如,将8小时间隔加到一个TIMESTAMP上,会得到8小时以后的一个新的TIMESTAMP。

*** 作日期有关字段的时候,最好显示地指定日期或时间格式,比如:

Insert into t ( date_column ) values ( to_date( '01/02/2003', 'DD/MM/YYYY' ) );避免各种格式造成混乱。

1 DATE类型介绍

DATE类型是一个7字节的定宽日期/时间数据类型。它总是包含7个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。这七个字节分别存储的是这7个属性,比如:2005-12-05 12:30:43存储的是120,105,12,5,12,31,44。世纪和年份分别加了100,分钟和秒钟分别加了1。世纪和年份加100是为了区分公元前和公元后。我们经常使用这样的条件,Where to_char(date_column,'yyyy') = '2005',其实这个地方可以换成:Where trunc(date_column,'y') = to_date('01-jan-2005','dd-mon-yyyy')。因为,trunc函数是在日期上将年份后面5个字节清空,而to_char函数,还要转换成字符串。当然,如果能够不使用函数最好,比如:created >= to_date('01-jan-2005','dd-mon-yyyy') and created < to_date('01-jan-2006','dd-mon-yyyy');这样如果在created列上建立了索引,还能使用索引。

以上就是关于从数据库中取出了两个date型数据(年-月-日),怎么算出他们相差几天全部的内容,包括:从数据库中取出了两个date型数据(年-月-日),怎么算出他们相差几天、oracle数据库建表语句可以指定date字段的格式吗、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9354530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存