迄今在SQL中获取周数(Getting week number of date in SQL)

2019-08-17 14:52发布

是否有一种方式来获得与SQL一个日期,是独立于数据库的周数?

例如,要得到我使用日期的月份:

SELECT EXTRACT(MONTH FROM :DATE)

但EXTRACT函数不知道在SQL92周。

请注意,我想一个解决方案,是独立的数据库的事实! 不要误解这是关于MS SQL Server中的问题。

Answer 1:

似乎没有成为一个标准的SQL函数来提取日期的周数-看到这里 ,了解如何不同的SQL方言可以从日期字段提取不同的日期部分进行比较。



Answer 2:

你可以试试这个。

声明@date日期时间选择@日期= '2013年3月15日00:00:00' 选择 '否周:' +转换(VARCHAR(10),日期部分(WK,@日期))作为weekno



Answer 3:

尝试这一个: SELECT DATENAME(yy,GETDATE())+RIGHT(DATENAME(wk,GETDATE()),2)

要了解DATENAME,请点击此链接: sqltutorials.blogspot.be/2007/05/sql-datename.html和正确的, suite101.com/article/sql-functions-leftrightsubstrlengthcharindex-a209089 。 有例子更好地了解;-)它将在MS和其他SQL服务器正常工作;-)



Answer 4:

唯一的分贝独立的解决方案我看到的是拿到今天CURR的1月1日之间的天数。 年。 然后,通过7分,并四舍五入起来。 有一个从73年1月1日天,直到今天,这给作为10.43周数。 ISO的周数是11。

更正:当前周的最后一天,CURR的1月1日之间的天数。 年。 在这种情况下,ISO周是10,并且七分之六十八= 10(舍入)。



Answer 5:

我发现最好的办法是

SELECT ROUND(((DAY(NOW())-1)/7)+1)


Answer 6:

select (DATEPART(yyyy , CAST(GETDATE() AS datetime)) * 100 + 
        DATEPART(ww , CAST(GETDATE() AS datetime))) as week


文章来源: Getting week number of date in SQL