有没有办法获得与数据库无关的SQL的日期周数?
例如,要获取我使用的日期月份:
SELECT EXTRACT(MONTH FROM :DATE)
但是EXTRACT函数在SQL92中并不知道几周。
请注意我想要一个独立于数据库的解决方案!不要将此误解为有关MS SQL Server的问题。
答案 0 :(得分:2)
似乎没有一个标准的SQL函数可以从日期中提取周数 - 请参阅here,了解不同的SQL方言如何从日期字段中提取不同的日期部分。
答案 1 :(得分:0)
你可以试试这个。
声明@date日期时间 select @ date ='2013-03-15 00:00:00' 选择'周号:'+转换(varchar(10),datepart(wk,@ date))为weekno
答案 2 :(得分:0)
试试这个:
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服务器;-)
答案 3 :(得分:0)
我看到的唯一一个独立于数据库的解决方案是获取今天和1月1日之间的天数。年。然后将其除以7并将其四舍五入。从1月1日到今天有73天,周数为10.43。 ISO周数为11。
更正:当前周的最后一天与当前的1月1日之间的天数。年。在这种情况下,ISO周是10周,68/7 = 10(四舍五入)。
答案 4 :(得分:0)
我找到的最好的主意是
SELECT ROUND(((DAY(NOW())-1)/7)+1)
答案 5 :(得分:-1)
select (DATEPART(yyyy , CAST(GETDATE() AS datetime)) * 100 +
DATEPART(ww , CAST(GETDATE() AS datetime))) as week