是否有一种方式来获得与SQL一个日期,是独立于数据库的周数?
例如,要得到我使用日期的月份:
SELECT EXTRACT(MONTH FROM :DATE)
但EXTRACT函数不知道在SQL92周。
请注意,我想一个解决方案,是独立的数据库的事实! 不要误解这是关于MS SQL Server中的问题。
是否有一种方式来获得与SQL一个日期,是独立于数据库的周数?
例如,要得到我使用日期的月份:
SELECT EXTRACT(MONTH FROM :DATE)
但EXTRACT函数不知道在SQL92周。
请注意,我想一个解决方案,是独立的数据库的事实! 不要误解这是关于MS SQL Server中的问题。
似乎没有成为一个标准的SQL函数来提取日期的周数-看到这里 ,了解如何不同的SQL方言可以从日期字段提取不同的日期部分进行比较。
你可以试试这个。
声明@date日期时间选择@日期= '2013年3月15日00:00:00' 选择 '否周:' +转换(VARCHAR(10),日期部分(WK,@日期))作为weekno
尝试这一个: 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服务器正常工作;-)
唯一的分贝独立的解决方案我看到的是拿到今天CURR的1月1日之间的天数。 年。 然后,通过7分,并四舍五入起来。 有一个从73年1月1日天,直到今天,这给作为10.43周数。 ISO的周数是11。
更正:当前周的最后一天,CURR的1月1日之间的天数。 年。 在这种情况下,ISO周是10,并且七分之六十八= 10(舍入)。
我发现最好的办法是
SELECT ROUND(((DAY(NOW())-1)/7)+1)
select (DATEPART(yyyy , CAST(GETDATE() AS datetime)) * 100 +
DATEPART(ww , CAST(GETDATE() AS datetime))) as week