【发布时间】:2014-06-27 11:09:06
【问题描述】:
我正在创建一个接收两个日期作为参数的过程。
该过程适用于具有以下列的表格(我会放一张实际表格的图片,但我还没有足够的声誉):
日期 displayName 标签容量
表中包含的数据已经收集了几年,从某一天开始,displayName 列引用了 Vmware 的名称。因此,有可能开始日期只有 3 个条目,而结束日期有 5 个(反映 Vmwares 是在这两者之间创建的)。我想做的如下。给定开始日期和结束日期,我希望能够仅选择在两个日期之间创建(或添加)的 displayName(以及它们的标签和容量)。我有的是
CREATE PROCEDURE afficherCreationLuns @start Date, @end Date
AS
BEGIN
SELECT dateCollecte, DisplayName, label, capacity
FROM Vsp
WHERE dateCollecte = @end AND displayName NOT IN (SELECT displayName
FROM Vsp
WHERE dateCollecte = @start)
END
这仅适用于开始日期与创建 Vmware 的确切日期相同的情况(因此将 displayName 添加到条目中)。如果您在此之前选择一个日期,则不会出现任何内容。
我也试过 WHERE dateCollecte >= @start AND dateCollecte
但无论选择的日期如何,这都不起作用。
我也尝试过这样定义日期
@start Date = '2014-05-01', @end = '2014-05-02'
但它不会改变任何东西。
现在我不确定是否可以完成,但我也想要以下内容:
- 在表格的日期列中显示的不是结束日期(就像我的代码那样),而是创建 Vmware 的日期(因此添加的条目)
- 显示已创建的 displayName,即使它已被销毁。即,如果第 10 天我有 3 个条目,则在第 12 天创建一个 Vmware(我现在有 4 个该日期的条目)并销毁第 13 天,如果所选日期是 start = 10th 和 end =,我希望它出现14.
感谢大家的帮助!
附:如果有帮助,这里是表格的结构:
----------------
Columns for: Vsp
----------------
----------DEV_TechnoWin dbo Vsp id 4 int identity 10 4 0 10 0 4 1 NO 56
----------DEV_TechnoWin dbo Vsp dateCollecte -9 date 10 20 1 -9 2 YES 0
----------DEV_TechnoWin dbo Vsp displayName -9 nvarchar 250 500 1 -9 500 3 YES 39
----------DEV_TechnoWin dbo Vsp capacityInKB 6 float 15 8 10 1 6 4 YES 109
----------DEV_TechnoWin dbo Vsp consumedCapacityInKB6 float 15 8 10 1 6 5 YES 109
----------DEV_TechnoWin dbo Vsp dpPoolId 4 int 10 4 0 10 1 4 6 YES 38
----------DEV_TechnoWin dbo Vsp label -9 nvarchar 250 500 1 -9 500 7 YES 39
----------DEV_TechnoWin dbo Vsp tieringPolicy 4 int 10 4 0 10 1 4 8 YES 38
----------DEV_TechnoWin dbo Vsp dpTier0ConsumedCapacityInKB6 float 15 8 10 1 6 9 YES 109
----------DEV_TechnoWin dbo Vsp dpTier1ConsumedCapacityInKB6 float 15 8 10 1 6 10 YES 109
----------DEV_TechnoWin dbo Vsp dpTier2ConsumedCapacityInKB6 float 15 8 10 1 6 11 YES 109
----------DEV_TechnoWin dbo Vsp dateImport -9 date 10 20 1 -9 12 YES 0
【问题讨论】:
-
您能在您的系统中添加一些数据示例吗?
WHERE dateCollecte >= @start AND dateCollecte < @end应该有工作
标签: sql-server datetime stored-procedures comparison procedure