当前位置:首页 » 编程语言 » sql计算两列日期差
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql计算两列日期差

发布时间: 2022-11-01 00:28:42

‘壹’ 如何用sql计算access2007数据表两个日期差

access与SqlServer 之时间与日期及其它SQL语句比较

1、Datediff:

1.1算出日期差:
1.access: datediff('d',fixdate,getdate())
2.sqlserver: datediff(day,fixdate,getdate())
ACCESS实例: select * from table where data=datediff('d',fixdate,getdate())
sqlserver实例: select * from table where data=datediff(day,fixdate,getdate())
1.2算出时间差:
1.access: datediff('h',fixdate,getdate())
2.sqlserver: datediff(Hour,'2004-12-10',getdate())
ACCESS实例: select DATEDIFF('h',HMD,getdate())
sqlserver实例: select datediff(Hour,'2004-12-10',getdate())
1.3算出月份差:
1.access: datediff('m',fixdate,getdate())
2.sqlserver: datediff(Month,'2004-12-10',getdate())
ACCESS实例: select DATEDIFF('m',HMD,getdate())
sqlserver实例: select datediff(Month,'2004-12-10',getdate())

‘贰’ 如何简单地用一句SQL算一下两个日期间相差的月份数

使用Datedif(日期1,日期2,"m")函数
DATEDIF是EXCEL中的函数,还有以下的使用方法一并教教:
1、简要说明: 返回两个日期之间的年\月\日间隔数

2、基本语法: =DATEDIF(开始日期,结束日期,单位代码)

3、实例1:
题目: 计算出生日期为1973-4-1人的年龄

公式: =DATEDIF("1973-4-1",TODAY(),"Y")

结果: 33

简要说明 当单位代码为"Y"时,计算结果是两个日期间隔的年数.

4、实例2:
题目: 计算日期为1973-4-1和当前日期的间隔月份数.

公式: =DATEDIF("1973-4-1",TODAY(),"M")

结果: 403

简要说明 当单位代码为"M"时,计算结果是两个日期间隔的月份数.

5、实例3:
题目: 计算日期为1973-4-1和当前日期的间隔天数.

公式: =DATEDIF("1973-4-1",TODAY(),"D")

结果: 12273

简要说明 当单位代码为"D"时,计算结果是两个日期间隔的天数.

5、实例4:
题目: 计算日期为1973-4-1和当前日期的不计年数的间隔天数.

公式: =DATEDIF("1973-4-1",TODAY(),"YD")

结果: 220

简要说明 当单位代码为"YD"时,计算结果是两个日期间隔的天数.忽略年数差

5、实例5:
题目: 计算日期为1973-4-1和当前日期的不计月份和年份的间隔天数.

公式: =DATEDIF("1973-4-1",TODAY(),"MD")

结果: 6

简要说明 当单位代码为"MD"时,计算结果是两个日期间隔的天数.忽略年数和月份之差

5、实例6:
题目: 计算日期为1973-4-1和当前日期的不计年份的间隔月份数.

公式: =DATEDIF("1973-4-1",TODAY(),"YM")

结果: 7

简要说明 当单位代码为"YM"时,计算结果是两个日期间隔的月份数.不计相差年数

‘叁’ SQL中计算两列之间相差的天数,注意:列数据类型为:CHAR非日期型

select to_date(日期1,'yyyy-mm-dd') - to_date(日期2,'yyyy-mm-dd') from al;

‘肆’ SQL是计算两个日期相差多少天数的函数

SQL是高级的非过程化编程语言,一般针对数据库进行操作。

定义:datediff(day/month/year,startdate,enddate)

日期函数:(要返回的天数/月数/年数,开始日期,结束日期)

具体形式:
select 1,2,datediff(day,1,2) 天数 from aa

‘伍’ 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))
+
'日'

‘陆’ 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的顺序即可。

‘柒’ 利用SQL语句如何获得两个日期之间相差的天数

用sysdate假设结束日期字段是end_date

添加这个判断条件:

where to_char("end_date",'YYYY') = to_char(sysdate,'YYYY') 判断年相同

and to_char("end_date",'MM') = to_char(sysdate,'MM') 判断月相同

and to_char("end_date",'dd') - to_char(sysdate,'dd') = 15 判断日相同

或者:

where to_char("end_date",'YYYY-MM-DD') - to_char(sysdate,'YYYY-MM-DD')=15

(7)sql计算两列日期差扩展阅读:

注意事项

DATEDIFF返回跨两个指定日期的日期和时间边界数。

语法:DATEDIFF ( datepart , startdate , enddate )

参数:datepart

是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

startdate是返回datetime或smalldatetime值或日期格式字符串的表达式。 因为smalldatetime只精确到分钟,所以当用smalldatetime值时,秒和毫秒总是 0。

如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。

enddate是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

返回类型:integer

注释:startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。

‘捌’ 如何使用mysql计算两个日期之间的时间差

MySql计算两个日期时间的差函数:
第一种:TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR几种类型,第二个和第三个参数是待比较的两个时间,比较是后一个时间减前一个时间,具体用法如下:

[sql] view plain
SELECT TIMESTAMPDIFF(DAY,'2012-10-01','2013-01-13');
返回结果是104,这里比较的是两个时间的天数差;

[sql] view plain
SELECT TIMESTAMPDIFF(MONTH,'2012-10-01','2013-01-13');

这里比较的是两个时间的月份,返回的结果是3;

第二种方法: DATEDIFF函数,就传入两个日期函数,比较的DAY天数,第一个参数减去第二个参数的天数值,具体用法如下:

[sql] view plain
SELECT DATEDIFF('2013-01-13','2012-10-01');
返回的结果也是104。

另外其它的日期函数,
now()函数返回的是当前时间的年月日时分秒,如:2008-12-29 16:25:46
CURDATE()函数返回的是年月日信息: 如:2008-12-29
CURTIME()函数返回的是当前时间的时分秒信息,如:16:25:46
另外,如果我们想对一个包含年月日时分秒日期格式化成年月日日期,可以使用DATE(time)函数,如
DATE(now()) 返回的是 2008-12-29

‘玖’ sql两列时间日期相减怎么写

你好的
正常来说两个日期可以直接减
如果这两列就是日期类型
select avg(收货日期-寄送日期) from 表名;
这样就能直接获取到所有的快递的平均日期
望采纳!