重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
sqlserver?
为兴安等地区用户提供了全套网页设计制作服务,及兴安网站建设行业解决方案。主营业务为网站制作、成都做网站、兴安网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
用自带的不就可以了,,,,
select datediff(wk,'2015-11-21','2015-11-28')
结果:
1
select datediff(wk,'2015-11-21','2015-11-29')
结果:
2
如果是mssqlserver,使用日期函数DATEDIFF ( datepart , startdate , enddate ) 用法参考mssqlserver的使用帮助:DATEDIFF 返回跨两个指定日期的日期和时间边界数。 语法 DATEDIFF ( datepart , startdate , enddate ) 参数 datepart是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft�0�3 SQL Server�6�4 识别的日期部分和缩写。日期部分缩写yearyy, yyyyquarterqq, qMonthmm, mdayofyeardy, yDaydd, dWeekwk, wwHourhhminutemi, nsecondss, smillisecondms
startdate是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。 因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。 enddate是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。返回类型 integer注释 startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。计算跨分钟、秒和毫秒这些边界的方法,使得 DATEDIFF 给出的结果在全部数据类型中是一致的。结果是带正负号的整数值,其等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。示例 此示例确定在 pubs 数据库中标题发布日期和当前日期间的天数。USE pubs GO SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days FROM titles GO 你这的问题可以这样解决:select * from 表名 where datediff(ww,getdate(),beginTime)=0datediff(ww,getdate(),beginTime)=0,说明:datediff(ww,getdate(),beginTime),ww参数指定比较粒度是周,如果你的beginTime字段中时间值和系统时间(getdate())在同一周,则datediff(ww,getdate(),beginTime)返回0,如果beginTime是在本周之前,返回小于0的数值,如果beginTime是本周以后,则返回大于0的数值,所以你的过滤条件应该为datediff(ww,getdate(),beginTime)=0.还有一个问题是,日期是中星期日是周的开始,而不是周末.
说一下我的思路吧.首先查询出当前月的每一天进行排序,然后再对每一天进行星期几的查询,再定位第一个星期五,我们用的也是Oracle,语句应该也是大同小异.
select ndate(select trunc(sysdate,'mm')+level-1 as ndate from daul connect by level =31) t where to_char(ndate,'dy')='星期五' and rownum='1';
DATEDIFF(wk,起始日期,结束日期)
这是SQLServer的函数,计算周数,而且是以星期天为准
要注意的是起始日期当天并不算在内
select *
from thetable
where datepart(weekday, thedatefield) in (1,7)