⑴ 利用sql语句如何获得两个日期之间相差的天数
select TO_DATE(TO_CHAR(sysdate,'YYYYMMDD'),'YYYYMMDD') - TO_DATE(表字段,'YYYYMMDD') from 表名;
表名和表字段根据具体情况而定,
还有
date1为数据库里输入数据时的时间,date2为当前系统时间
应该是反的,date1应该是当前系统时间,date2是数据库里输入数据时的时间
⑵ SQL里求两个日期相差的年数
select(DATEDIFF(month,日期1,日期2)+0.0)/12
这样?
⑶ 在Sql语句中怎样计算出两个日期的差值
sql语句中计算两个日期的差值用datediff函数。
工具:sqlserver 2008 R2
步骤:
1、计算2009-06-23与2009-06-17之间的天数。语句如下:
selectdatediff(d,'2009-06-17','2009-06-23')
2、查询结果:
⑷ 关于SQL两个时间计算出间隔时间的问题。
declare@DMtimeint
declare@Dvarchar(10)
declare@Hvarchar(10)
declare@Mvarchar(10)
declare@Svarchar(10)
set@DMtime=DATEDIFF(SECOND,'2013-08-2016:40:23','2013-08-2416:05:05')
--获取两个时间段的秒的相差值
set@D=@DMtime/(3600*24)--天数
set@H=(@DMtime-@D*3600*24)/3600--小时
set@M=(@DMtime-@D*3600*24-@H*3600)/60--分钟
set@S=@DMtime-@D*3600*24-@H*3600-@M*60--秒
select@D+N'天
小时
分钟
秒'
效果图如下:
⑸ sql 计算两个日期相差多少年月日
如:起始时间
2011-1-1
截止日期
2011-2-1
两个时间比较相差
0年1个月
如:起始时间
2010-11-1
截止日期
2011-12-1
两个时间比较相差
1年1个月
怎么比较才能得出~
相差多少年
多少个月
这个当然很简单,
一句sql就可以了:select
ltrim(datediff(yy,@dt1,@dt2))+'年'+ltrim(datediff(mm,@dt1,@dt2)%12)+'月'
但是如果连几天也要计算呢?闲着没事自己随便在sql
server下写了写,store
proceres代码如下,应该没可以了:create
procere
getdatediff
@fromdate
nvarchar(10),
@todate
nvarchar(10)
as
declare
@yeardiff
integer
declare
@monthdiff
integer
declare
@daydiff
integer
declare
@tomonth
integer
declare
@fromday
integer
declare
@today
integer
set
@yeardiff
=
ltrim(datediff(yy,
@fromdate,
@todate))
set
@monthdiff
=
ltrim(datediff(mm,
@fromdate,
@todate)%12)
set
@tomonth
=
month(cast(@todate
as
datetime))
set
@fromday
=
day(cast(@fromdate
as
datetime))
set
@today
=
day(cast(@todate
as
datetime))
if
(@today
-
@fromday)
<
0
begin
if
(@tomonth
-
1)
=
1
or
(@tomonth
-
1)
=
3
or
(@tomonth
-
1)
=
5
or
(@tomonth
-
1)
=
7
or
(@tomonth
-
1)
=
8
or
(@tomonth
-
1)
=
10
or
(@tomonth
-
1)
=
12
begin
set
@daydiff
=
31
+
@today
-
@fromday
set
@monthdiff
=
@monthdiff
-1
end
else
begin
set
@daydiff
=
30
+
@today
-
@fromday
set
@monthdiff
=
@monthdiff
-1
end
end
else
begin
set
@daydiff
=
@today
-
@fromday
end
select
cast(@yeardiff
as
nvarchar(10))
+
'年'
+
cast(@monthdiff
as
nvarchar(10))
+
'月'
+
cast(@daydiff
as
nvarchar(10))
+
'日'
⑹ sqlserver中返回两个日期间相差几年零几月
select datediff(month,'2017-1-5','2018-05-25')/12 ,datediff(month,'2017-1-5','2018-05-25')%12
执行结果:1年4个月
注释:
datediff(month,'2017-1-5','2018-05-25')取出两个日期相差的总月数;
datediff(month,'2017-1-5','2018-05-25')/12 取出两个日期相差的总年数。
datediff(month,'2017-1-5','2018-05-25')%12 取出总年数后,剩余月数。
⑺ SQL 计算两个日期相差多少天数的函数
SQL是高级的非过程化编程语言,一般针对数据库进行操作。
定义:datediff(day/month/year,startdate,enddate)
日期函数:(要返回的天数/月数/年数,开始日期,结束日期)
具体形式:
select 1,2,datediff(day,1,2) 天数 from aa
还有一些方法:
使用DATEDIFF函数可以求两个日期之间相差的天数。
MySQL中的DATEDIFF函数仅需要两个参数 (即要计算相差天数的两个日期),第一个参数应是两个日期中较小的值,以避免出现负值(SQL Server中正好相反)。
在SQL Server中,可以指定该函数返回值所表示的类型(在这个例子中,返回以“日”为单位的差)。下面的解决方案采用了SQL Server的版本:
1 select datediff(day,allen_hd,ward_hd)
2 from (
3 select hiredate as ward_hd
4 from emp
5 where ename = 'WARD'
6 ) x,
7 (
8 select hiredate as allen_hd
9 from emp
10 where ename = 'ALLEN'
11 ) y
MySQL用户只需去掉该函数的第一个参数,交换一下传递ALLEN_HD和WARD_HD的顺序即可。
⑻ mssql计算两个日期时间间隔多少分钟
如果是求间隔的天数,但第一天不算,最后一天也不算入,则办法如下:
1.同一月份,用日期数相减再减1,如1月2日到1月4日(0:00),4-2-1=1(天),只间隔了一天(1月3日)。
2.不同月份,则算出起始日期至月底的天数,再加上剩余的月份的天数(如果是下个月则不用),再加上截止月的月初至截止日期的天数再减一,如3月2日到5月5日(0:00),31-2+30+5-1=63(天),间隔了3月3日到3月31日的29天,四月份的30天,1日到4日的4天。共63天。
如果是求求间隔的天数,但第一天不算,最后一天算入则办法如下:
1.同一月份,用日期数相减,如1月2日到1月4日,4-2=2(天),间隔了两天(1月3日和1月四号)。
2.不同月份,则算出起始日期至月底的天数,再加上剩余的月份的天数(如果是下个月则不用),再加上截止月的月初至截止日期的天数,如3月2日到5月5日,
31-2+30+5=64(天),间隔了3月3日到3月31日的29天,四月份的30天,1日到5日的5天。共64天。