SQL 函数查询

thecityofsky 2010-12-23 11:48:19
大家试试这两个函数为什么2011-1-1是第一周,不是10年53周

select DATEPART(weekday,'2011-1-1')
select DATEPART(wk,'2011-1-1')

好像函数设置以前没有这样的问题哦
C#里面的计算week的存在同样问题


/**//// <summary>
/// 求当前日期是一年的中第几周
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public int WeekOfYear(DateTime curDay)
{
int firstdayofweek = Convert.ToInt32(Convert.ToDateTime(curDay.Year.ToString() + "- " + "1-1 ").DayOfWeek);

int days = curDay.DayOfYear;
int daysOutOneWeek = days - (7 - firstdayofweek);

if (daysOutOneWeek <= 0)
{
return 1;
}
else
{
int weeks = daysOutOneWeek / 7;
if (daysOutOneWeek % 7 != 0)
weeks++;

return weeks + 1;
}
}

...全文
62 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
brownhwy 2011-01-20
  • 打赏
  • 举报
回复
这一个函数是查某年的某天是这一年的第几周,是以你输入的日期的年份为准的,1月1日肯定属于某一年的第一周,这个还有疑问吗?
abuying 2011-01-20
  • 打赏
  • 举报
回复
可以通过firstday来设置周的第一天
set firstday=1,星期一为第一天,此为默认
set firstday=7 星期七为第一天
thecityofsky 2011-01-20
  • 打赏
  • 举报
回复
呵呵 但是就此一天,别的都不是这样的
飘零一叶 2010-12-23
  • 打赏
  • 举报
回复
默认情况下,周日是一周开始的时间。楼主可以自己改一下。
dawugui 2010-12-23
  • 打赏
  • 举报
回复
我始终认为"周"这个概念是西方人的,在中国并不实用.

例如国外是讲周薪,而不是月薪.
dawugui 2010-12-23
  • 打赏
  • 举报
回复
这得看你怎么定义了?而不是函数的问题.

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧