以下声明:
group by datepart(wk, createdon)
根据所选行的下周对所选行进行分组。我的select语句显示以下内容:
SELECT
datepart(wk, createdon) week,
如何显示一周的实际日期时间(“12-10-2012”),而不是数字(“12”)?
答案 0 :(得分:2)
一种选择是使用带有ROW_NUMBER
的cte代替:
WITH CTE AS
(
SELECT
RN = ROW_NUMBER() OVER (PARTITION BY datepart(wk, createdon) ORDER BY createdon)
, DATEADD(ww, DATEDIFF(ww,0,createdon), 0) As Week
, *
FROM dbo.Table
)
SELECT * FROM CTE
WHERE RN = 1
答案 1 :(得分:2)
如果我理解正确,你想要按周分组,但也要返回完整的日期时间。您必须在聚合列中包含所选字段。 因此应该工作:
SELECT DATEPART(wk, createdon) week, createdon
FROM TableName
GROUP BY DATEPART(wk, createdon), createdon
适用于MSSQL2008R2
编辑: 由于OP似乎想要一周的开始日期,因此SO具有answer。
答案 2 :(得分:1)
您不能按一周分组,然后显示它的组成部分,即天。您需要按日期分组。