首页 > 其他 > 详细

datediff()、adddate()、lag()、lead()

时间:2021-04-24 12:33:56      阅读:24      评论:0      收藏:0      [点我收藏+]

1.datediff()

datediff(startdate,enddate)

返回两个日期相差的天数

2.date_add()

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

#对于某个日期加上n分钟n秒

技术分享图片

#对于某个日期加上n小时n分钟n秒

技术分享图片

 #对于日期加上几天几小时几分钟几秒钟

技术分享图片

技术分享图片

3.lag()和lead()

  • lag(字段名称 , 向上偏移量 , 超出范围时默认值) over (partion by …order by …)

  • lead(字段名称 , 向下偏移量 , 超出范围时默认值) over (partion by …order by …)

 例题:leetcode 197题

技术分享图片

 

 

#方法一
-- select id
-- from 
-- (
-- select id,recordDate,Temperature,lag(recordDate,1,Null) over (order by recordDate) yd,
-- lag(Temperature,1,100) over (order by recordDate) yt
-- from Weather
-- ) a
-- where datediff(a.recordDate,a.yd)=1
-- and a.Temperature>a.yt;

#方法二
-- select a.id
-- from Weather a
-- inner join Weather b
-- on datediff(a.recordDate,b.recordDate)=1
-- and a.Temperature>b.Temperature;

#方法三
select a.id 
    from weather a 
    inner join weather b 
    on (a.recorddate = adddate(b.recorddate,INTERVAL 1 day))
where a.temperature > b.temperature;

datediff()、adddate()、lag()、lead()

原文:https://www.cnblogs.com/hugrice/p/14696366.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!