这是我的查询:
SELECT DISTINCT
'wk ' + TRIM(CONVERT(varchar(max), DATEADD(Week, DATEDIFF(week, 0, CONVERT(VARCHAR(max), period)), -1))) [week]
FROM
ABC
GROUP BY
TRIM(CONVERT(varchar(max), DATEADD(Week, DATEDIFF(week, 0, CONVERT(VARCHAR(max), period)), -1)))
我得到这样的结果:wk Aug 7 2022 12:00AM
但我想要这种格式的wk Aug 7, 2022
答案中有一个错误,它总是在一月返回,现在已经修复了错误
您可以使用日期部分函数构建字符串
declare @period datetime = '20220807' -- getdate()
SELECT 'wk ' +
left(datename(month, @period), 3) +
' ' + convert(varchar(2), datepart(day, @period)) +
' ,' + convert(varchar(4), datepart(year, @period))
看起来像这个wk Aug 7 ,2022
要转换您的select子句以使用此,
declare @table1 table (id int, period date)
insert into @table1 (id, period) values (1, '20220807'), (2, '20211130')
SELECT 'wk ' +
left(datename(month, dateadd( week, DATEDIFF( week, 0, CONVERT(VARCHAR(12), convert(date, period))), -1)), 3) +
' ' + convert(varchar(2), datepart(day, dateadd( week, DATEDIFF( week, 0, CONVERT(VARCHAR(12), convert(date, period))), -1))) +
' ,' + convert(varchar(4), datepart(year, dateadd( week, DATEDIFF( week, 0, CONVERT(VARCHAR(12), convert(date, period))), -1)))
from @table1
看起来像这个
COLUMN1 |
---|
2022年8月7日工作 |
2021年11月28日工作 |