在SQL中获取周数日期



是否有一种方法可以获得与数据库独立的SQL日期的周数?

例如要获取日期的月份,我使用:

SELECT EXTRACT(MONTH FROM :DATE)

但是EXTRACT函数不知道SQL92中的周。

请注意,我想要一个解决方案,是数据库独立的!

似乎没有一个标准的SQL函数可以从日期中提取周数——请参阅这里,比较不同的SQL方言如何从日期字段中提取不同的日期部分。

你可以试试这个

声明@date日期时间Select @date='2013-03-15 00:00:00'select 'Week No: '+ convert(varchar(10),datepart(wk,@date)) as weekno

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

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

我看到的唯一独立于数据库的解决方案是获得今天和当前的1月1日之间的天数。的一年。然后除以7,四舍五入。从1月1日到今天有73天,所以周数是10.43。ISO周数为11。

更正:当前周的最后一天到当前周的1月1日之间的天数。的一年。在本例中,ISO周为10,68/7 = 10(四舍五入)。

我发现最好的主意是

SELECT ROUND(((DAY(NOW())-1)/7)+1)
select (DATEPART(yyyy , CAST(GETDATE() AS datetime)) * 100 + 
        DATEPART(ww , CAST(GETDATE() AS datetime))) as week

最新更新