SQL Server视图将datetime转换为monthname

时间:2015-09-16 19:37:42

标签: sql-server datetime view casting

如何在视图中输入从datetime,dbo.Verkaufstransaktion.VerkaufDatum到monthname

类型的列
SELECT         
    dbo.Artikel.ArtikelName, dbo.Artikel.Preis, 
    dbo.Kategorie.KategorieName, dbo.Mitarbeiter.MitarbeiterName, 
    dbo.Verkaufstransaktion.Monat, dbo.Verkaufstransaktion.VerkaufAnzahl, 
    dbo.Artikel.ArtikelKey, dbo.Mitarbeiter.MitarbeiterKey, 
    dbo.Kategorie.KategorieKey, dbo.Verkaufstransaktion.VerkaufDatum
FROM
    dbo.Artikel 
INNER JOIN
    dbo.Kategorie ON dbo.Artikel.Id_Kategorie = dbo.Kategorie.Id 
INNER JOIN
    dbo.Lagerzuweisung ON dbo.Artikel.Id = dbo.Lagerzuweisung.Id_Artikel 
INNER JOIN
    dbo.Mitarbeiter ON dbo.Artikel.Id = dbo.Mitarbeiter.Id 
INNER JOIN
    dbo.Verkaufstransaktion ON dbo.Artikel.Id = dbo.Verkaufstransaktion.Id_ Artikel 
                            AND dbo.Mitarbeiter.Id = dbo.Verkaufstransaktion.Id_Mitarbeiter

1 个答案:

答案 0 :(得分:0)

你没有“演员”。只需提取相应的日期部分:

SELECT . . .
       datename(month, dbo.Verkaufstransaktion.VerkaufDatum) as MonthName

您的查询将更容易编写和使用表别名读取:

SELECT a.ArtikelName, a.Preis, k.KategorieName, m.MitarbeiterName,
       v.Monat, v.VerkaufAnzahl, a.ArtikelKey, m.MitarbeiterKey, 
       k.KategorieKey,
       datename(month, v.VerkaufDatum) as MonthName
FROM dbo.Artikel a INNER JOIN
     dbo.Kategorie k
     ON a.Id_Kategorie =k .Id INNER JOIN
     dbo.Lagerzuweisung l
     ON a.Id = l.Id_Artikel INNER JOIN
     dbo.Mitarbeiter m
     ON a.Id = m.Id INNER JOIN
     dbo.Verkaufstransaktion v
     ON a.Id = v.Id_Artikel AND m.Id = v.Id_Mitarbeiter