精华内容
下载资源
问答
  • 2020-04-20 17:45:26

    DECLARE @ctime AS datetime, @mtime AS datetime;
    SELECT @ctime = GETDATE(), @mtime = '2020-4-20 00:00:00';

    DECLARE @Days AS int, @Hours AS int, @Minutes AS int, @Seconds AS int;

    SET @Seconds = DATEDIFF( second, @mtime, @ctime);
    SET @Days = @Seconds / (24 * 60 * 60)
    SET @Seconds = @Seconds - @Days * 24 * 60 * 60
    SET @Hours = @Seconds / (60 * 60);
    SET @Seconds = @Seconds - @Hours * 60 * 60
    SET @Minutes = @Seconds / 60;
    SET @Seconds = @Seconds - @Minutes * 60;

    SELECT CONVERT(varchar(10), @Days ) + '天' + CONVERT(varchar(10), @Hours ) + '小时' + CONVERT(varchar(10), @Minutes ) + '分' + CONVERT(varchar(10), @Seconds ) + '秒';

    更多相关内容
  • sql中两个日期相减

    千次阅读 2020-12-19 18:30:18
    sql中两个日期相减1、相差天数selecttrunc(sysdate,'yyyy')-to_date('2009-01-04','yyyy-mm-dd') fromdual;2、相差月数selectmonths_between(trunc(sysdate,'mm'),to_date('2009-01','yyyy-mm'))from dual;3、相差...

    sql中两个日期相减

    1、相差天数

    select

    trunc(sysdate,'yyyy')-to_date('2009-01-04','yyyy-mm-dd') from

    dual;

    2、相差月数

    select months_between(trunc(sysdate,'mm'),to_date('2009-01','yyyy-mm'))

    from dual;

    3、相差年数

    select

    trunc((months_between(trunc(sysdate,'dd'),to_date('2009-01-01','yyyy-mm-dd')))/12)

    from dual;

    4、select datediff( day, '2008.08.25', '2008.09.01' )

    5、select datediff( second, '2009-8-25 12:15:12', '2009-9-1

    7:18:20') --返回相差秒数

    6、

    select

    datediff( minute, '2009-8-25 12:15:12', '2009-9-1 7:18:20')

    --返回相差分钟数

    7、

    select

    datediff( hour, '2009-8-25 12:15:12', 2009-9-1 7:18:20')

    --返回相差小时数

    问题三:select datediff( day, 2009-8-25 12:15:12', 2009-9-1

    7:18:20')

    实例二

    use

    pubs

    select

    distinct datediff(day, '2009-3-12', '2009-3-15') as difday

    from

    titles

    结果:3

    实例三

    select

    t1.*,t2.RESPONSE_TIME from dbo.CO_ALARM_RECORD

    t1,dbo.CO_WORK_THRESHOLD t2 where t2.alarm_type_id=t1.alarm_type

    and datediff( minute, alarm_time,

    complete_time)>5

    declare @dt1 as datetime, @dt2 as datetime;

    select

    @dt1 = '2008-8-4 9:36:41', @dt2 = '2008-8-2 9:33:39';

    declare @days as int, @hours as int, @minutes as int, @seconds as

    int;

    set

    @seconds = datediff( second, @dt2, @dt1);

    set

    @days = @seconds / (24 * 60 * 60)

    set

    @seconds = @seconds - @days * 24 * 60 * 60

    set

    @hours = @seconds / (60 * 60);

    set

    @seconds = @seconds - @hours * 60 * 60

    set

    @minutes = @seconds / 60;

    set

    @seconds = @seconds - @minutes * 60;

    select

    convert(varchar(10), @days ) + '天' + convert(varchar(10), @hours )

    + '小时' + convert(varchar(10), @minutes ) + '分' +

    convert(varchar(10), @seconds ) + '秒';

    下面来看个实例

    我有一个表,其中有四个字段:开始天数,开始时间,到达天数,到达时间(这四个字段都是varchar类型)

    例如:某一条记录: 1 16:00 2 12:20

    我的目的就是用 select(到达天数+到达时间)-(开始天数+开始时间) as 花费时间 from table

    例如上条记录得到的就是(2*24:00+12:20)-(24:00+16:00)=20:00

    这样的sql语句该怎么写???

    declare @t table

    (

    beginday int,

    begintime varchar(20),

    endday int,

    endtime varchar(20)

    )

    insert

    @t select 1,'16:00',2,'12:20'

    union

    all select 1,'3:00',3,'19:10'

    select

    date=rtrim(date/60)+':'+rtrim(date`)

    from

    (select date=datediff(mi,1,dateadd(d,endday-beginday,beginday)-begintime+endtime)from @t )t

    date

    -------------------------

    20:20

    64:10

    方法二

    declare @t table(开始天数 varchar(10),开始时间 varchar(10),到达天数

    varchar(10),到达时间 varchar(10))

    insert

    @t select '1', '16:00','2','12:20'

    --如果开始天数,到达天数大于31

    select

    到达天数 * 24 + datepart(hh,到达时间) - 开始天数 * 24 - datepart(hh,开始时间)

    from

    @t

    展开全文
  • sql语句中日期相减的操作

    千次阅读 2022-03-22 21:42:11
    sql语句中日期相减的操作 GETDATE() 和 NOW() 查出来的时间一样 select GETDATE(),NOW() FROM t_表名; curdate() 只显示年月日 select curdate(),NOW() FROM TB_表名; 如果做减法,只能得到相差的天数 不想有...

    1. 直接用日期时间做减法

    • GETDATE() 和 NOW() 查出来的时间一样,都带时分秒
    select GETDATE(),NOW() FROM t_表名;
    
    • curdate() 只显示 年月日
    select curdate(),NOW() FROM TB_表名;
    
    • 如果直接做减法,只能得到两个时间相差多少天
    select (NOW()-日期时间字段) FROM T_表名;
    
    • 若不要 时分秒,可以考虑用 curdate()
    select (curdate()-日期时间字段) FROM T_表名;
    

    2. 使用 datediff 函数

    • datediff 函数还有其他的玩法,在这就不多加赘述了。
    1. 两日期 间隔年
    select datediff(year, 开始日期,结束日期) FROM T_表名;;
    
    1. 俩日期 间隔季
    select datediff(quarter, 开始日期,结束日期) FROM T_表名;
    
    1. 俩日期 间隔月
    select datediff(month, 开始日期,结束日期) from 表名;
    
    1. 俩日期 间隔天
    select datediff(day, 开始日期,结束日期) FROM T_表名; 
    
    1. 俩日期 间隔周
    select datediff(week, 开始日期,结束日期) FROM T_表名;
    
    1. 俩日期 间隔小时
    select datediff(hour, 开始日期,结束日期) FROM T_表名;
    
    1. 俩日期 间隔分
    select datediff(minute, 开始日期,结束日期) FROM T_表名;
    
    1. 俩日期 间隔秒
    select datediff(second, 开始日期,结束日期) FROM T_表名; 
    

    好的代码像粥一样,都是用时间熬出来的

    展开全文
  • sql日期时间相减语句本款教程利用了datediff函数,来...sql中两个日期相减1、相差天数select trunc(sysdate,"yyyy")-to_date("2009-01-04","yyyy-mm-dd") from dual;2、相差月数select months_between(trunc(sysdat...

    sql日期时间相减语句

    本款教程利用了datediff函数,来对数据库教程的日期进行相减查询哦,下面便写了n种关于mssql 日期相减的方法。

    sql中两个日期相减

    1、相差天数

    select trunc(sysdate,"yyyy")-to_date("2009-01-04","yyyy-mm-dd") from dual;

    2、相差月数

    select months_between(trunc(sysdate,"mm"),to_date("2009-01","yyyy-mm")) from dual;

    3、相差年数

    select trunc((months_between(trunc(sysdate,"dd"),to_date("2009-01-01","yyyy-mm-dd")))/12) from dual;

    4、select datediff( day, "2008.08.25", "2008.09.01" )

    5、select datediff( second, 2009-8-25 12:15:12", 2009-9-1 7:18:20") --返回相差秒数

    6、

    select datediff( minute, 2009-8-25 12:15:12", 2009-9-1 7:18:20") --返回相差分钟数

    7、

    select datediff( hour, 2009-8-25 12:15:12", 2009-9-1 7:18:20") --返回相差小时数

    问题三:select datediff( day, 2009-8-25 12:15:12", 2009-9-1 7:18:20")

    实例二

    use pubs

    select distinct datediff(day, "2009-3-12", "2009-3-15") as difday

    from titles

    结果:3

    declare @dt1 as datetime, @dt2 as datetime;

    select @dt1 = "2008-8-4 9:36:41", @dt2 = "2008-8-2 9:33:39";

    declare @days as int, @hours as int, @minutes as int, @seconds as int;

    set @seconds = datediff( second, @dt2, @dt1);

    set @days = @seconds / (24 * 60 * 60)

    set @seconds = @seconds - @days * 24 * 60 * 60

    set @hours = @seconds / (60 * 60);

    set @seconds = @seconds - @hours * 60 * 60

    set @minutes = @seconds / 60;

    set @seconds = @seconds - @minutes * 60;

    select convert(varchar(10), @days ) + "天" + convert(varchar(10), @hours ) + "小时" + convert(varchar(10), @minutes ) + "分" + convert(varchar(10), @seconds ) + "秒";

    下面来看个实例

    我有一个表,其中有四个字段:开始天数,开始时间,到达天数,到达时间(这四个字段都是varchar类型)

    例如:某一条记录: 1 16:00 2 12:20

    我的目的就是用 select(到达天数+到达时间)-(开始天数+开始时间) as 花费时间 from table

    例如上条记录得到的就是 (2*24:00+12:20)-(24:00+16:00)=20:00

    这样的sql语句该怎么写???

    declare @t table

    (

    beginday int,

    begintime varchar(20),

    endday int,

    endtime varchar(20)

    )

    insert @t select 1,"16:00",2,"12:20"

    union all select 1,"3:00",3,"19:10"

    select

    date=rtrim(date/60)+":"+rtrim(date%60)

    from

    (select date=datediff(mi,1,dateadd(d,endday-beginday,beginday)-begintime+endtime)from @t )t

    date

    -------------------------

    20:20

    64:10

    方法二

    declare @t table(开始天数 varchar(10),开始时间 varchar(10),到达天数 varchar(10),到达时间 varchar(10))

    insert @t select "1", "16:00","2","12:20"

    --如果开始天数,到达天数大于31

    select 到达天数 * 24 + datepart(hh,到达时间) - 开始天数 * 24 - datepart(hh,开始时间)

    from @t

    展开全文
  • DB2 日期相减

    2021-03-07 18:40:14
    标签:简单方法:使用 days字符型的日期:2012-01-01,2012-01-11values days(date(‘2012-01-11‘)) -days(date(‘2012-01-01‘))----------------------------10错误示例://sql.Append(" LEFT JOIN (SELECT COUNT...
  • oracle中两个日期相减

    千次阅读 2019-10-14 15:08:55
    Oracle两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 为相差的小时数 oracle 两个时间相减默认的是天数*24*60 为相差的分钟数 oracle 两个时间相减默认的是天数*24*60*60 为相差的秒数 --MONTHS...
  • 如何让sql两个时间相减

    千次阅读 2021-11-30 17:49:40
    select DATEDIFF( Hour, RealEndTime, RealStartTime) AS 时间差 from user (小时时间差)
  • 返回跨两个指定日期日期和时间边界数。  语法 DATEDIFF ( datepart , startdate , enddate )  参数 datepart 是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别...
  • sql server 两个时间进行相减

    千次阅读 2017-09-11 14:48:32
    两个日期相减小于30天  DATEDIFF(day,ta.apply_date,Convert(varchar(10),Getdate(),120))
  • sql中两个时间类型相减得到的值

    千次阅读 2020-12-22 22:41:10
    今天有人把数据库两个time类型的字段查出来并做了减法,得到一个长形的数字。这个数字是什么?首先在数据库里建立一张test表(mysql的数据库)CREATE TABLE `NewTable` (`id` int(10) NOT NULL AUTO_INCREMENT ,`time1...
  • 1.SQL中将两个日期进行相减得到分钟或者秒 代码如下(示例): TIMESTAMPDIFF(MINUTE,createTime,endTime)// ...endTime减去createTine后的到分钟,如果后者小区前者...提示:这里是对用SQL实现对两个日期相减...
  • datediff(year, 开始日期,结束日期); --日期间隔年 datediff(quarter, 开始日期,结束日期); --日期间隔季 datediff(month, 开始日期,结束日期); --日期间隔月 datediff(day, 开始日期,结束日期); --日...
  • add_5month, date_add(year,-interval - 5 hiredate) as hd_sub_5year, date_add(year,interval 5 hiredate) as hd_add_5year from emp 2、计算两个日期之间的天数(时间字段为 hiredate,名称字段为 ename,...
  • postgre 计算两个日期相减

    千次阅读 2020-05-09 17:06:00
    date_part('day', cast(time1 as TIMESTAMP)- cast(time2 as TIMESTAMP)) select date_part('day', current_date - UPDATE_PWD_DATE ) from pure_user;
  • mysql
  • mysql两个日期相减,得到相差的天数

    万次阅读 2019-05-22 18:03:17
    CURDATE() 获取当前服务器日期(YY-MM-DD) ...DATEDIFF(date1,date2) 两个日期相减函数,返回date1-date2相差的天数 SELECT CURDATE() FROM DUAL; SELECT DATEDIFF(CURDATE(),'2019-05-20') da...
  • 1、得到日期字段的不同格式 select RecordTime from [192.168.30.2].[SmartChargeLaiBao].[dbo].[HRVisitTime] a select convert(char(10),RecordTime,120) from [192.168.30.2].[SmartChargeLaiBao].[dbo]....
  • 一、MySQL两个DateTime字段相减假定表名为tblName,两个DateTime字段名分别为beginDateTime,endDateTime,...得到两个日期字段之间的秒数selec t (UNIX_TIMESTAMP(endDateTime) - UNIX_TIMESTAMP(beginDateTime...
  • 展开全部SQL是高e5a48de588b662616964757a686964616f31333365633961级的非过程化编程语言,一般针对数据库进行操作。定义:datediff(day/month/year,startdate,enddate)日期函数:(要返回的天数/月数/年数,开始日期,...
  • 根据生日获取年龄 select birthday,DATEDIFF(now(),birthday)/365 age FROM lg_lawyer_base where not ISNULL(birthday) and isDeleted = 0; 使用当前DATEDIFF函数 用当前时间NOW()减去生日birthday 在除以365,...
  • /**有一个需求,要求获得两个日期想减的天数,小时数,分钟数。通过查找资料,于是乎我写出了如下代码,来获得两个字段。*/IFNULL(CONCAT( IF(aib.`forecast_reply_time`-aib.`actual_reply_time` < 0,'-',''),IF...
  •  返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。 语法  DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])  DateDiff 函数语法有下列命名参数:  部分 描述 ...
  • 一、MySQL两个DateTime字段相减 假定表名为tblName,两个DateTime字段名分别为beginDateTime,endDateTime,以下是相关两个mysql日期字段相减SQL语句,这种方式两字段跨天,月...得到两个日期字段之间的秒数 se...
  • sql语句日期型数据相减时,如何只用年份和月份相减,得到相差月数? Oracle的话直接有months_between函数但是直接用的话会有小数 select Months_Between(a.D1,a.D2) c from AAA a; select Months_Between...
  • 假设Out_time - In_time 得到X秒,datediff(单位,被减数,减数),单位可以是MS、SS、HH、DAY等单位 1.X/(3600*24) 得到XX天; 2.X%(3600*24)/3600得到XX小时; 3.X%(3600*24)%3600%60得到XX分; 4.X%60得到XX秒;...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,347
精华内容 2,538
关键字:

sql中两个日期相减