计算两个时间(%m/%d/%Y %H:%i:%S)之间的天数

首先,明确是使用diffdate函数来算这个时间间隔:DATEDIFF(date1,date2) 返回两个时间之间的天数,date1晚于date2,否则返回天数为负
(这里用的是mysql,与其他SQL server等有些语法区别。)

数据说明:
用的数据集是从kaggle上导下来的,数据表名叫TData,涉及的数据是DeadlineDate和StartDate,导入时都是text类型,这两个时间格式是%m/%d/%Y %H:%i:%S,和diffdate要用的格式%Y-%m-%d不一样,所以最关键的就是转换时间格式。转换完成后调用diffdate即可。

-- 新增两个列,用来存放新的时间格式
alter table TData add column StartDate_new datetime;
SET SQL_SAFE_UPDATES = 0
update TData set StartDate_new=STR_TO_DATE(substring(StartDate,1,10), '%m/%d/%Y') 
-- 其中,substring(StartDate,1,10) 用以取出年月日部分,从第1位取到第10位,然后转换成我们想要的格式。

alter table TData add column DeadlineDate_new datetime; 
SET SQL_SAFE_UPDATES = 0
update TData set DeadlineDate_new=STR_TO_DATE(substring(DeadlineDate,1,10), '%m/%d/%Y') 

-- 加一列length记录时间间隔
alter table TData add column length int; 
update TData set length=datediff(DeadlineDate_new,StartDate_new)

效果如图所示:
这是原始的两列数据:

这是修改后新增的两列数据与时间间隔天数:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值