【问题标题】:SQL Server view cast datetime to monthnameSQL Server 视图将日期时间转换为月份名称
【发布时间】:2015-09-16 19:37:42
【问题描述】:

如何在视图中将日期时间类型dbo.Verkaufstransaktion.VerkaufDatum 的列转换为月份名称

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

【问题讨论】:

  • 你应该用你的实际数据库来标记你的问题,这可能是 SQL Server 的某个版本。

标签: sql-server datetime view casting


【解决方案1】:

你不“施放”。只需提取适当的日期部分:

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

【讨论】:

  • 在我看来,在 SQL 窗格中,在 SELECT 之前,我将更改语言并添加命令“SET LANGUAGE German”。我变成了这个错误消息“SQL 文本不能在网格窗格和图表窗格中表示。”。另外,当我只执行命令“SET LANGUAGE German”时。
猜你喜欢
  • 2016-03-09
  • 2018-11-30
  • 2021-01-01
  • 2018-12-21
  • 1970-01-01
  • 2017-02-07
  • 1970-01-01
  • 2020-07-25
  • 2015-05-26
相关资源
最近更新 更多