SQL Server:日期间隔输出

时间:2017-07-12 11:01:36

标签: sql sql-server procedure sql-date-functions

如何让T-SQL向我展示2001年和2010年之间的所有信息?这是一个程序:

CREATE PROCEDURE proc_neue_mitarbeiter_004
    @Personalnummer varchar(10),
    @Name varchar(30),
    @Vorname varchar(30),
    @Geburtsdatum date,
    @Telefon varchar(30),
    @Mobil varchar(30),
    @Email varchar(50),
    @Raum varchar(10),
    @Ist_Leiter char(1),  
    @AbtBezeichnung varchar(30), -- hier wird dann kein Abteilungs Nummer geschrieben, sonst ein Namen von Abteilung die unter Nummer in die Tabelle "Abteilung" steht
    @steuerklasse tinyint
AS
BEGIN
    DECLARE @Abteilung_ID AS INT
    SET @Abteilung_ID = (SELECT id 
                         FROM Abteilung 
                         WHERE Bezeichnung = @AbtBezeichnung) -- lokale Variable (interne)

    INSERT INTO Mitarbeiter(Personalnummer, Name, Vorname, Geburtsdatum, 
                            Telefon, Mobil, Email, Raum, Ist_Leiter, 
                            Abteilung_ID, steuerklasse) 
    VALUES (@Personalnummer, @Name, @Vorname, @Geburtsdatum,
            @Telefon, @Mobil, @Email, @Raum, @Ist_Leiter,
            @Abteilung_ID, @steuerklasse) -- lokale Variable als ausgangspunkt

    -- Man kann auch mit subselect (select spalte from table) aus anderen tabellen die werte nehmen
END
GO

EXEC proc_neue_mitarbeiter_004 '200001', 'Stark', 'Tony', '01.01.2001',
                               null, null, null, null, 'Y',
                               'Vertrieb', '1' 

1 个答案:

答案 0 :(得分:0)

您的存储过程执行INSERT操作。您正在要求进行SELECT操作。

它还不完全是您想要在2001年和2010年之间用于提取数据的字段。但是,您的查询很可能看起来像这样:

SELECT 
    * 
FROM 
    Mitarbeiter 
WHERE 
    Geburtsdatum BETWEEN '2001-01-01' AND '2010-12-31'. 

您可能需要调整日期格式以适合您的区域设置,以及从您实际需要的字段中提取数据的列(我很难想象您会使用7岁的孩子)。