sql 取周数

来源:百度知道 编辑:UC知道 时间:2024/05/30 00:19:18
sql 里的一些函数可以实现,但是得出的是期天为一周的开始,星期六为一周结束,我想要的是按国人的长长星期一为一周开始,星期天为一周结束,望有人能助我。
谢谢大家,回答者: ytbelwxg -的可以,但是我用不上,先谢谢,回答者: simenyu不知道你那 set datefirst 1 会不会装整个库给改了。还是查询时临时改的,

先用dateadd(dd,1,.....)来加一天,再用你的办法

如cast(dateadd(dd,1,getdate()) as int)/7-cast(dateadd(dd,1,'2009-1-1') as int)/7

select datepart(week,getdate()) a

create function f_orderby (@date datetime)
returns int
as
begin
declare @i int,@order int
select @i=datepart(weekday,@date)
if @i=1
select @order=7
if @i=2
select @order=1
if @i=3
select @order=2
if @i=4
select @order=3
if @i=5
select @order=4
if @i=6
select @order=5
if @i=7
select @order=6
return @order
end

这个函数返回的值,星期一是第一天……,星期日是第七天,可以用来排序,我估计你应该是这个意思吧!

以上,希望对你有所帮助!

SQL Server中,默认一周的第一天是星期日.
若要改变它,需要设置datefirst值.
如:set datefirst 1,则把星期一作为一周的第一天.

DECLARE @Date DATETIME
SET @Date = GETDATE()
--星期一,取得你所设置日期的星期一
SELECT DATEADD(d,-(DATEPART(w,@Date)+@@DATEFIRST-2)%7,@Date)
--星期天
SELECT DATE