我有一个MS SQL表,表中的一行有特定的日期。示例:2019-11-30 22:00:21.000
我希望构建一个SQL查询,该查询将转到我的表中,并且只有在此特定列中的日期介于TODAY + 30天之间时才打印结果
这是我所拥有的,但到目前为止没有快乐
SELECT FOOD_TYPE, BEST_BEFORE
FROM TABLE
WHERE BESTBEFORE < GETDATE() - 30;
它没有抱怨语法,但也没有显示结果
答案 0 :(得分:2)
将BETWEEN和CAST用作DATE,否则它将无法获取今天的日期:
react-dom elements
答案 1 :(得分:1)
您可能想尝试:
SELECT FOOD_TYPE, BEST_BEFORE
FROM TABLE
where BESTBEFORE < dateadd(day, 30, getdate())
如果TABLE
列小于治疗日期加上30天,此查询将返回BESTBEFORE
中的所有记录。
答案 2 :(得分:1)
您需要GETDATE()
过滤器。请注意,DATETIME
为DATE
(带有时间价值),如果您需要完整的日期,则可能需要转换为BETWEEN
(如我的示例所示)。此外,使用SELECT FOOD_TYPE, BEST_BEFORE
FROM TABLE
WHERE BESTBEFORE BETWEEN CONVERT(DATE, GETDATE()) AND CONVERT(DATE, GETDATE() + 30)
表示您要比较的两个限制都包含在内。
{
"name": "InstanceInputEndpointNatPool",
"properties": {
"backendPort": 10000,
"frontendIPConfiguration": {
"id": "[concat(resourceId('Microsoft.Network/loadBalancers', variables('loadBalancers_01_name')), '/frontendIPConfigurations/LoadBalancerIPConfig')]"
},
"frontendPortRangeStart": 10100,
"frontendPortRangeEnd": 10500,
"protocol": "Tcp"
}
}
答案 3 :(得分:0)
根据您的描述,您需要:
SELECT FOOD_TYPE, BEST_BEFORE
FROM TABLE
WHERE BESTBEFORE < DATEADD(day, 30, GETDATE());
请注意,GETDATE()
有一个时间组件,我猜测BESTBEFORE
没有。时间组件不应影响此查询。此外,此版本是“sargable”,这意味着查询可以使用BEST_BEFORE
上的索引。
答案 4 :(得分:0)
您必须尝试此SQL查询。它完成了您的要求。
tail
如果有疑问,请告诉我。