Ⅰ 求教sql语句两个日期、时间字段相减得到天数小时分秒的问题
selectrequestid,userid,workflowid,receivedate,receivetime,operatedate,operatetime,
cast(dayasvarchar)+'天'+cast((hour-day*24)asvarchar)+'小时'+
cast((minute-hour*60)asvarchar)+'分'+
cast((second-minute*60)asvarchar)+'秒'result
from(
selectrequestid,userid,workflowid,receivedate,receivetime,operatedate,operatetime,
datediff(d,CONVERT(datetime,receivedate+''+receivetime,20),
CONVERT(datetime,operatedate+''+operatetime,20))day,
datediff(hh,CONVERT(datetime,receivedate+''+receivetime,20),
CONVERT(datetime,operatedate+''+operatetime,20))hour,
datediff(n,CONVERT(datetime,receivedate+''+receivetime,20),
CONVERT(datetime,operatedate+''+operatetime,20))minute,
datediff(s,CONVERT(datetime,receivedate+''+receivetime,20),
CONVERT(datetime,operatedate+''+operatetime,20))second
fromworkflow_currentoperator
whereworkflowid=297andrequestid=110215
)t
orderbyreceivedate,receivetime
Ⅱ sql2005中两个字段相减取时间值问题
select DATEDIFF ( second , a , b ) 如果a和b是时间类型携卜祥的话 可以直接这样计算出来辩搏弊伏的
Ⅲ 请教oracle中用sql时间相减的问题
这个问题。。。。
给你个详细的回答吧 以后就不再担忧这方面的任何问题
Oracle计算时间差表达式
--获取两时间的相差豪秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒数 FROM DUAL;
/*
相差豪秒数
----------
86401000
1 row selected
*/
--获取两时间的相差秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60) 相差秒数 FROM DUAL;
/*
相差秒数
----------
86401
1 row selected
*/
--获取两时间的相差分钟数
select ceil(((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) * 24 * 60) 相差分钟数 FROM DUAL;
/*
相差分钟数
----------
1441
1 row selected
*/
--获取两时间的相差小时数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24) 相差小时数 FROM DUAL;
/*
相差小时数
----------
25
1 row selected
*/
--获取两时间的相差天数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) 相差天数 FROM DUAL;
/*
相差天数
----------
2
1 row selected
*/
----------------------------------------
注:天数可以2个日期直接减,这样更加方便
----------------------------------------
--获取两时间月份差
select (EXTRACT(year FROM to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd'))) * 12 +
EXTRACT(month FROM to_date('2008-05-01','yyyy-mm-dd')) - EXTRACT(month FROM to_date('2008-04-30','yyyy-mm-dd')) months
from al;
/*
MONTHS
----------
13
1 row selected
*/
--------------------------------------
注:可以使用months_between函数,更加方便
--------------------------------------
--获取两时间年份差
select EXTRACT(year FROM to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd')) years from al;
/*
YEARS
----------
1
1 row selected
Ⅳ mysql:两个时间相减,得出这种格式的时间 '2年240天17小时56分2秒'能用sql写出来吗
declare@strint
set@str=datediff(second,'2016-01-01','2017-08-0108:12:30')--日期时间差
selectcast(@str/(86400*365)aschar)+'年'
selectcast(@str/86400%365aschar)+'天'
selectcast(@str/3600%24aschar)+'时'
selectcast(@str/60%60aschar)+'分'
select亮码则cast(@str%60aschar)+'秒'
你自己修改下 然后字模咐符串链接就能得敬棚出结果
Ⅳ postgresql里面怎么得到两个日期相差多少秒,或者多少分钟
PostgreSQL中直接用两个date(或者timestamp)值相减,其返回的是一个interval值,再有该interval值取出天数转换成分钟或秒数,再加上interval中分钟(和秒数)部分的值就可以了。
示例SQL:
selectinterval_value,date_part('day',interval_value)asday_value,date_part('day',interval_value)*24*60+date_part('minute',interval_value)asminutes
from(
select(current_timestamp-to_timestamp('2013-08-:23','yyyy-mm-ddhh24:mi'))asinterval_value
)s;
Ⅵ SQL求两个时间点相减的函数,需求显示,时、分、秒
两个日期之间的差值
Oracle
两日期相减,单位是“天”
SELECT
TO_DATE('2012-12-21'早哪,
'YYYY-MM-DD')
-
sysdate
AS
have_dates
FROM
al;
SQL
Server
DATEDIFF
函数高睁丛进行处理
MySQL
TIMEDIFF
函数进戚樱行处理
Ⅶ sql~日期格式如何相减
1、简单介绍一下datediff()函数。
DATEDIFF()函数返回两个日期之间的天数。
语法:
DATEDIFF(datepart,startdate,enddate)
startdate和enddate参数是合法的日期表达式。
datepart参数可以是下列的值:
Ⅷ SQL 怎么查两个时间相减小于如'50秒''的
select *
from XXXX
where datediff(ss,StartTime,EndTime) < 50
里面用了datediff()函数,可以计算两个日期类型的差值,第一个参数指定计算日期中的哪一部分,这里的ss代表秒(同样可以用yy代表年,mm代表月,dd代表天等……)。
测试过了,没错:P
Ⅸ SQL求两个时间点相减的函数,需求显示,时、分、秒
select datediff(s,'2012-12-11 8:00:00','2012-12-11 08:31:47')
结果是1907 (秒)
语法
DATEDIFF ( datepart , startdate , enddate )
datepart 缩写
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns
Ⅹ sql 日期相减
select datediff(year, 开始日期,结束日期); --两日期间隔年
select datediff(quarter, 开始日期,结束日期); --两日期间隔季
select datediff(month, 开始日期,结束日期); --两日期间隔月
select datediff(day, 开始日期,结束日期); --两日期间隔天
select datediff(week, 开始日期,结束日期); --两日期间隔周
select datediff(hour, 开始日期,结束日期); --两日期间隔小时
select datediff(minute, 开始日期,结束日期); --两日期间隔分
select datediff(second, 开始日期,结束日期); --两日期间隔秒