数据库语句处理时间
在很多项目里,都会有日期的字段,有些功能需要显示距离日期的字段,那么如果从数据库查出来,再通过JavaScript处理的话,会很麻烦,而且代码量以及运行的速度变慢,那么唯有从数据库的语句处理,然后再绑定在页面上,那样会方便很多,思路是这样,先在当前时间与对比时间进行分钟判断,也就是=>60秒,成立第一个条件,就直接显示,否则,判断第二个条件,时间判断,也就是<=1440,24小时之内,第三个就是判断天数,是否>7天,不然,直接显示年月日。代码如下:
SELECT CutGoodsTime,
(CASE WHEN CONVERT(varchar(100),DATEDIFF(MINUTE, CONVERT(varchar(100), CutGoodsTime, 120),
CONVERT(varchar(100), GETDATE(), 120))) > =60 AND CONVERT(varchar(100),DATEDIFF(MINUTE, CONVERT(varchar(100),
CutGoodsTime, 120),CONVERT(varchar(100), GETDATE(), 120))) <=1440
THEN CONVERT(varchar(100),DATEDIFF(Hour, CONVERT(varchar(100), CutGoodsTime, 120),
CONVERT(varchar(100), GETDATE(), 120)))+'小时前'
WHEN CONVERT(varchar(100),DATEDIFF(Day, CONVERT(varchar(100), CutGoodsTime, 120),
CONVERT(varchar(100), GETDATE(), 120)))>7
THEN cast(year(CutGoodsTime) as varchar(10)) + '年'+ cast(month(CutGoodsTime) as varchar(10)) + '月' + cast(day(CutGoodsTime) as varchar(10)) + '日'
WHEN CONVERT(varchar(100),DATEDIFF(Hour, CONVERT(varchar(100), CutGoodsTime, 120),
CONVERT(varchar(100), GETDATE(), 120)))>=24
THEN CONVERT(varchar(100),DATEDIFF(Day, CONVERT(varchar(100), CutGoodsTime, 120),
CONVERT(varchar(100), GETDATE(), 120)))+'天前'
ELSE CONVERT(varchar(100),DATEDIFF(MINUTE, CONVERT(varchar(100), CutGoodsTime, 120),
CONVERT(varchar(100), GETDATE(), 120)))+'分钟前' END) AS differ_minute
FROM B_AirliftFreightForwardingBookingList
ORDER BY CutGoodsTime DESC
执行代码后,结果如下: