在这个 SQL 语句中,你使用了 `DATEADD` 函数的第一个参数为 `21`,这是不正确的。`DATEADD` 函数的第一个参数应该是表示日期部分的字符串,例如 `'day'`、`'month'`、`'year'` 等。
如果你想要查询本月最后一天的日期,可以使用以下 SQL 语句:
```
SELECT DATEADD(day, -1, DATEADD(month, DATEDIFF(month, 0, $$begindatekey) + 1, 0)) AS last_day_of_month
```
这里使用了 `DATEDIFF` 函数计算出当前日期距离 1900 年 1 月 1 日的月份数,再加上 1 得到下个月的月份,然后使用 `DATEADD` 函数得到下个月的第一天,最后再减去一天得到本月的最后一天。
在 `WHERE` 子句中使用了 `$$begindatekey` 变量来表示开始日期,你需要在代码中将其替换为实际的日期值。