【发布时间】:2019-09-11 16:22:35
【问题描述】:
我想分享一个每天运行一次的查询,但是我需要删除团队中其他用户必须对其进行编辑的部分。基本上,它在周一至周五运行。如果今天是星期一,我想给我最近 3 天的数据。其他任何一天,只要给我昨天的数据。
到目前为止,这是我所拥有的:
更新:它们都是字符串,所以现在我收到以下错误。
“关键字'BETWEEN'附近的语法不正确。”
DECLARE @daychecker varchar(max) = FORMAT(GETDATE(), 'dddd')
DECLARE @daterange0 varchar(max)
DECLARE @daterange1 varchar(max) = FORMAT(GETDATE()-3, 'yyyy-MM-dd')
DECLARE @daterange2 varchar(max) = FORMAT(GETDATE()-1, 'yyyy-MM-dd')
IF @daychecker = 'Wednesday'
BEGIN
SET @daterange0 = BETWEEN @daterange1 AND @daterange2
END
ELSE
BEGIN
SET @daterange0 = FORMAT(GETDATE()-1, 'yyyy-MM-dd')
END
SELECT @daterange0;
例如今天的结果应该返回昨天的日期。但这不起作用。我会考虑所有选项,包括硬编码某种我们可以计算的主开始日期,比如年初或其他时间。
【问题讨论】:
-
SET @daterange0 = BETWEEN @daterange1 AND @daterange2语法无效