2个时间相减怎么得出差多少年。多少月,多少天,多少小时多少分钟。多少秒

例如2022-04-20 15:59:00  减去 2021-03-19 15:50:00  得到 1年1月01天 0小时9分0秒

FineReport yzm319928 发布于 2022-4-20 16:00
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共8回答
最佳回答
0
用户XMAs58173Lv3见习互助
发布于2022-4-20 16:56

DATEDIF(A1,B1,"Y")+"年"+DATEDIF(A1,B1,"YM")+"个月"+DATEDIF(A1,B1,"MD")+"天"

这个可实现年月天

image.png

  • Z4u3z1 Z4u3z1 这是个错误答案:DATEDIF(\'2024-03-25\',\'2022-04-21\',\"Y\")+\"年\"+DATEDIF(\'2024-03-25\',\'2022-04-21\',\"YM\")+\"个月\"+DATEDIF(\'2024-03-25\',\'2022-04-21\',\"MD\")+\"天\" = 2年1个月4天 ???都是一个公式 用户6NWif5139660 回复在前
    2022-04-21 09:01 
  • yzm319928 yzm319928(提问者) 回复 Z4u3z1 DATEDIF(\'2022-02-21\',\'2022-03-01\',\"Y\")+\"年\"+DATEDIF(\'2022-02-21\',\'2022-03-01\',\"YM\")+\"个月\"+DATEDIF(\'2022-02-21\',\'2022-03-01\',\"MD\")+\"天\" 您试试这个
    2022-04-24 15:56 
最佳回答
0
HHHHH123Lv7中级互助
发布于2022-4-20 16:03(编辑于 2022-4-20 16:03)

DATESUBDATE()

https://help.fanruan.com/finebi/doc-view-1411.html

  • yzm319928 yzm319928(提问者) 并不能啊,这个公式只是单纯的计算天数差而已
    2022-04-20 16:04 
最佳回答
0
尛鬼Lv5中级互助
发布于2022-4-20 16:03

sql server的话。用DATEDIFF()

  • yzm319928 yzm319928(提问者) 并不能实现要求哦
    2022-04-20 16:05 
  • 尛鬼 尛鬼 回复 yzm319928(提问者) DATEDIFF算出来的是准确的天数间隔,你要实现几年几天。那你一个月按几天算呢
    2022-04-20 16:25 
最佳回答
0
用户6NWif5139660Lv6资深互助
发布于2022-4-20 16:05(编辑于 2022-4-20 16:06)
最佳回答
0
好好生活好好学习Lv7资深互助
发布于2022-4-20 16:06(编辑于 2022-4-20 16:19)

if(DATESUBDATE(S3, R3, "d") + "天" = "0天", "", DATESUBDATE(S3, R3, "d") + "天") + if(mod(DATESUBDATE(S3, R3, "h"), 24) + "时" = "0时", "", mod(DATESUBDATE(S3, R3, "h"), 24) + "时") + if(mod(DATESUBDATE(S3, R3, "m"), 60) + "分" = "0分", "", mod(DATESUBDATE(S3, R3, "m"), 60) + "分") + mod(DATESUBDATE(S3, R3, "s"), 60) + "秒"

这个是多少天多少时多少分多少苗 ,做参考

image.png

  • yzm319928 yzm319928(提问者) 并不能实现啊,大佬。这个天数是不能超过31天的,DATESUBDATE(S3, R3, \"d\") + \"天\")只是单纯的计算出两个日期相差的天数而已啊
    2022-04-20 16:10 
  • 好好生活好好学习 好好生活好好学习 回复 yzm319928(提问者) 可以啊,这个就是算出来多少天 多少时 ,你再加俩成判断就好了呀
    2022-04-20 16:18 
  • yzm319928 yzm319928(提问者) 回复 好好生活好好学习 多少年,多少月,多少天,多少小时多少分钟,多少秒
    2022-04-20 16:21 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-4-20 16:19(编辑于 2022-4-20 17:19)

CREATE FUNCTION [Fun_GetTimeInterval] 

( @RQ1_ DATETIME,@RQ2_ DATETIME )

RETURNS NVARCHAR(MAX)

AS

    BEGIN

        DECLARE @Part NVARCHAR(MAX),@YEAR_ INT,@MONTH_ INT,@DAY_ INT,@HOUR_ INT,@MINUTE_ INT,@SECOND_ INT

IF (DATEADD(YEAR,DATEDIFF(YEAR,@RQ1_,GETDATE()),@RQ1_)<=GETDATE()) BEGIN

SET @YEAR_=DATEDIFF(YEAR,@RQ1_,GETDATE())

END

ELSE BEGIN

SET @YEAR_=DATEDIFF(YEAR,@RQ1_,GETDATE())-1

END

SET @RQ1_=DATEADD(YEAR,@YEAR_,@RQ1_)

IF (DATEADD(MONTH,DATEDIFF(MONTH,@RQ1_,GETDATE()),@RQ1_)<=GETDATE()) BEGIN

SET @MONTH_=DATEDIFF(MONTH,@RQ1_,GETDATE())

END

ELSE BEGIN

SET @MONTH_=DATEDIFF(MONTH,@RQ1_,GETDATE())-1

END

SET @RQ1_=DATEADD(MONTH,@MONTH_,@RQ1_)

IF (DATEADD(DAY,DATEDIFF(DAY,@RQ1_,GETDATE()),@RQ1_)<=GETDATE()) BEGIN

SET @DAY_=DATEDIFF(DAY,@RQ1_,GETDATE())

END

ELSE BEGIN

SET @DAY_=DATEDIFF(DAY,@RQ1_,GETDATE())-1

END

SET @RQ1_=DATEADD(DAY,@DAY_,@RQ1_)

IF (DATEADD(HOUR,DATEDIFF(HOUR,@RQ1_,GETDATE()),@RQ1_)<=GETDATE()) BEGIN

SET @HOUR_=DATEDIFF(HOUR,@RQ1_,GETDATE())

END

ELSE BEGIN

SET @HOUR_=DATEDIFF(HOUR,@RQ1_,GETDATE())-1

END

SET @RQ1_=DATEADD(HOUR,@HOUR_,@RQ1_)

IF (DATEADD(MINUTE,DATEDIFF(MINUTE,@RQ1_,GETDATE()),@RQ1_)<=GETDATE()) BEGIN

SET @MINUTE_=DATEDIFF(MINUTE,@RQ1_,GETDATE())

END

ELSE BEGIN

SET @MINUTE_=DATEDIFF(MINUTE,@RQ1_,GETDATE())-1

END

SET @RQ1_=DATEADD(MINUTE,@MINUTE_,@RQ1_)

IF (DATEADD(SECOND,DATEDIFF(SECOND,@RQ1_,GETDATE()),@RQ1_)<=GETDATE()) BEGIN

SET @SECOND_=DATEDIFF(SECOND,@RQ1_,GETDATE())

END

ELSE BEGIN

SET @SECOND_=DATEDIFF(SECOND,@RQ1_,GETDATE())-1

END

SET @RQ1_=DATEADD(SECOND,@SECOND_,@RQ1_)

SET @Part=CONCAT(@YEAR_,'年',@MONTH_,'月',@DAY_,'天',@HOUR_,'小时',@MINUTE_,'分',@SECOND_,'秒')

        RETURN  @Part;

    END;

image.png

最佳回答
0
krystal033Lv7高级互助
发布于2022-4-20 16:25

逻辑都有问题 月有28 29 30 31天  年有365 366天 你这样怎么都算不准

  • yzm319928 yzm319928(提问者) 你这个评论 ,我实在不该怎么回答 ,您好好想想是我的逻辑有问题?求两个日期差的年月天 时分秒,叫有问题?
    2022-04-20 16:28 
  • krystal033 krystal033 回复 yzm319928(提问者) 对呀 比如两个日期相差32天 你按30天算还是31天算一个月
    2022-04-20 16:36 
  • krystal033 krystal033 回复 yzm319928(提问者) 除非你统一好标准月就是31天 年就是365天
    2022-04-20 16:36 
  • Z4u3z1 Z4u3z1 回复 yzm319928(提问者) 是不是MS SQL SERVER 看我修改后的
    2022-04-20 17:20 
最佳回答
0
CD20160914Lv8专家互助
发布于2022-4-20 16:30

计算出来怎么会是1月1天。这个如何计算的?总共差异是9528小时。。。减年一年的8760小时。也还有768小时。。。再用768去除以第一天24小时。。。也是有32天呀。。。。你这个1年1月01天的计算是如何计算的????

  • yzm319928 yzm319928(提问者) 32天 就变成1月1天
    2022-04-20 16:31 
  • yzm319928 yzm319928(提问者) 唉 看来只能用JS实现了
    2022-04-20 16:31 
  • CD20160914 CD20160914 回复 yzm319928(提问者) 那月份还有29天。、28天。30天的呢。。。为什么你都是31就算了?
    2022-04-20 16:34 
  • yzm319928 yzm319928(提问者) 回复 CD20160914 我只是拿月份里31天的来打个比方啊
    2022-04-20 16:35 
  • CD20160914 CD20160914 回复 yzm319928(提问者) 你跨月了。。。。。。而且是跨很多个月。这个判断不科目吧。假如你是这样的时间。。。2021-04-01 然后2022-07-03 这样的话你换哪一个月的天数???
    2022-04-20 16:37 
  • 7关注人数
  • 1033浏览人数
  • 最后回答于:2022-4-20 17:19
    请选择关闭问题的原因
    确定 取消
    返回顶部