ADDDATE
返回与起始日期间隔一定时间间隔的日期。
返回值类型由第一个参数date的类型决定。如果date是字符串,则返回字符串;如果date是日期,则返回日期。如果传入的是一个字符串类型的数据表字段,则格式必须是yyyyMMdd,如果不是,则需要用TODATE先转日期。
#语法
ADDDATE(date, offset, datepart)
- date:起始日期,日期类型,也可以是日期类型的字符串
- offset:时间间隔,表示要增加或减少的时间
- datepart:时间间隔类型,不区分大小写,详见下表
| datepart | 说明 |
|---|---|
| y | 年 |
| m | 月 |
| d | 日 |
| h | 小时 |
| mi | 分钟 |
| s | 秒 |
#示例
ADDDATE('2020',1,'y')返回2020年的后一年2021ADDDATE('202007',1,'y')返回2020年7月的后一年202107ADDDATE('20200715',1,'y')返回2020年7月15日的后一年20210715ADDDATE('202007',1,'m')返回2020年7月的后一月202008ADDDATE('20200715',1,'d')返回2020年7月15日的后一天20200716ADDDATE('20200715',-1,'d')返回2020年7月15日的前一天20200714ADDDATE('2020-07-23',2,'m')日期格式为yyyy-mm-dd2020-09-23ADDDATE('2020.07.23',2,'m')日期格式为yyyy.mm.dd20200923ADDDATE('2020/07/23',2,'m')日期格式为yyyy/mm/dd2020/09/23ADDDATE('2020 07 23',2,'m')日期格式为yyyy mm dd20200923LASTDAY(ADDDATE(TODAY(),-1,'m'))返回当前日期的上个月的最后一天2022-04-30IF(DAY(TODAY())>=15,ADDDATE(ADDDATE(TODAY(),-1,'M'),16-DAY(TODAY()),'D'),ADDDATE(ADDDATE(TODAY(),-2,'M'),16,'D'))如果当前日期大于15号,就返回16天前,否则就返回上个月的16天前2022-03-21IF(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-16ADDDATE(TODAY(),-(WEEKDAY(TODAY())-1),'d')返回当前日期所在周的第一天2022-05-02ADDDATE(TODAY(),7-WEEKDAY(TODAY()),'d')返回当前日期所在周的最后一天2022-05-08ADDDATE(TODAY(),-(RIGHT(TODAY(),2)-1),'d')返回当前日期的第一天2022-05-01RIGHT(LASTDAY(ADDDATE(TODAY(),0,'d')),2)返回月份所在的天数31ADDDATE([门店销售明细表].[销售日期],1,'y')返回销售日期的后一年20191215