MYSQL date_format'%x-%u'在SQL Server中等效

时间:2016-04-12 08:03:55

标签: mysql sql-server sql-server-2008

我在查询方面遇到了麻烦。我有一个最初来自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结果。

有人可以帮我吗?

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,这是工作查询。