我在查询方面遇到了麻烦。我有一个最初来自MYSQL的代码,但我将其迁移到Sql Server。现在我不知道SQL SERVER中是否存在%x-%u的直接等价物。
select date_format(date,'%x-%u') AS DATE from date_info WHERE Status = 1;
查询应返回YEAR-WEEKNUMBER
,其中YEAR是数据库中的年份,WEEK NUMBER是周数,具体取决于值,星期一是一周的第1天。
数据库中date
的示例值为2008-01-05 09:48:03
。
我希望得到2008-1
的结果。
我在SQL Server中尝试了DATEPART
函数和FORMAT
函数,但仍然无法找到我想要的解决方案。我发现使用DATEPART(ISOWK,date)
但它只返回周数。
我想要2008-1
结果。
有人可以帮我吗?
答案 0 :(得分:1)
尝试使用DATEPART()
和isowk
格式,该格式应该返回一年中的一周。
SELECT cast(datepart(yyyy,[date]) as char(4)) + '-' + cast(datepart(isowk,[date]) as char(2)) AS DATE as date
FROM date_info
WHERE Status = 1
在@ZoharPeled的评论中,这个查询需要一个转换为char,这是工作查询。