# ADDDATE

返回与起始日期间隔一定时间间隔的日期。

返回值类型由第一个参数date的类型决定。如果date是字符串,则返回字符串;如果date是日期,则返回日期。如果传入的是一个字符串类型的数据表字段,则格式必须是yyyyMMdd,如果不是,则需要用TODATE先转日期。

# 语法

ADDDATE(date, offset, datepart)

  • date:起始日期,日期类型,也可以是日期类型的字符串
  • offset:时间间隔,表示要增加或减少的时间
  • datepart:时间间隔类型,不区分大小写,详见下表
datepart 说明
y
m
d
h 小时
mi 分钟
s

# 示例

  1. ADDDATE('2020',1,'y') 返回2020年的后一年2021
  2. ADDDATE('202007',1,'y') 返回2020年7月的后一年202107
  3. ADDDATE('20200715',1,'y') 返回2020年7月15日的后一年20210715
  4. ADDDATE('202007',1,'m') 返回2020年7月的后一月202008
  5. ADDDATE('20200715',1,'d') 返回2020年7月15日的后一天20200716
  6. ADDDATE('20200715',-1,'d') 返回2020年7月15日的前一天20200714
  7. ADDDATE('2020-07-23',2,'m') 日期格式为yyyy-mm-dd2020-09-23
  8. ADDDATE('2020.07.23',2,'m') 日期格式为yyyy.mm.dd20200923
  9. ADDDATE('2020/07/23',2,'m') 日期格式为yyyy/mm/dd2020/09/23
  10. ADDDATE('2020 07 23',2,'m') 日期格式为yyyy mm dd20200923
  11. LASTDAY(ADDDATE(TODAY(),-1,'m')) 返回当前日期的上个月的最后一天2022-04-30
  12. IF(DAY(TODAY())>=15,ADDDATE(ADDDATE(TODAY(),-1,'M'),16-DAY(TODAY()),'D'),ADDDATE(ADDDATE(TODAY(),-2,'M'),16,'D')) 如果当前日期大于15号,就返回16天前,否则就返回上个月的16天前2022-03-21
  13. IF(DAY(TODAY())>=15,DATE(year(ADDDATE(TODAY(),-1,'M')),month(ADDDATE(TODAY(),-1,'M')),'16'),DATE(year(ADDDATE(TODAY(),-2,'M')),month(ADDDATE(TODAY(),-2,'M')),'16')) 如果当前日期大于15号,就返回上个月16号,否则就返回上上个月的16号2022-03-16
  14. ADDDATE(TODAY(),-(WEEKDAY(TODAY())-1),'d') 返回当前日期所在周的第一天2022-05-02
  15. ADDDATE(TODAY(),7-WEEKDAY(TODAY()),'d') 返回当前日期所在周的最后一天2022-05-08
  16. ADDDATE(TODAY(),-(RIGHT(TODAY(),2)-1),'d') 返回当前日期的第一天2022-05-01
  17. RIGHT(LASTDAY(ADDDATE(TODAY(),0,'d')),2) 返回月份所在的天数31
  18. ADDDATE([门店销售明细表].[销售日期],1,'y') 返回销售日期的后一年20191215
是否有帮助?
0条评论
评论