自己建个表,存贮周信息
看你的需要 可以只存周的开始和结束日期,也可以存从周一到周日的日期。
/
功能: 计算在某一段时间内某周几(如星期一)的所有日期
设计:OK_008
时间:2006-10
/
DECLARE @Date datetime
DECLARE @StartDate datetime
DECLARE @EndDate datetime
DECLARE @WeekDay int
DECLARE @i int
SET DATEFIRST 7 --设置每周的第一天
SET @StartDate='2006-01-01' --统计的开始日期
SET @EndDate='2006-12-31' --统计的结束日期
SET @WeekDay=1 --根据实际的@@DATEFIRST而定,一般默认是7,如 @StartDate='2006-01-01'时候, @WeekDay=3表示星期二
SET @i=DATEPART(weekday,@StartDate)
PRINT '每周的第1天设置@@DATEFIRST: '+CAST(@@DATEFIRST AS nvarchar(1))
PRINT '开始日期对应一周的第几天: '+CAST(@i AS nvarchar(1))
IF(@i<=@WeekDay AND @i<7)
SET @i=@WeekDay-@i
ELSE IF(@i<=@WeekDay AND @i=7)
SET @i=@i-@WeekDay
ELSE
SET @i=@@DATEFIRST-@i+@WeekDay
SET @Date=DATEADD(day,@i,@StartDate)
WHILE @Date<=@EndDate
BEGIN
IF(@StartDate<=@Date) PRINT CONVERT(nvarchar(10),@Date,121)
SET @Date=DATEADD(Week,1,@Date)
END
GO
/ ==============运行结果================/
/
每周的第1天设置@@DATEFIRST: 7
开始日期对应一周的第几天: 1
2006-01-01
2006-01-08
2006-01-15
2006-01-22
2006-01-29
/
--这是开始时间,末一天的话 用dateadd(day,1,@DATE)
weekdate=weekday(date()) '今天礼拜几的值:0123456
'查询所有本周内注册的会员的ID
sql="select [id] from [tableName] where datediff(d,[datetime],getdate())<="&weekdate
rsopen sql,conn,1,1
'查询一周内的信息的条数
sql="select count(1) from [tableName] where datediff(d,[datetime],getdate())<="&weekdate
rsopen sql,conn,1,1
把getdate()改成now(),d改成'd'就可以了吧
=====================================================
'默认值应该是now()吧!
'就下面这样了
sql="select [id] from [tableName] where datediff('d',[o_time],now())<="&weekdate
=====================================================
weekdate=weekday(date()) 写在什么地方,能不能不判断今天星期几?
asp里面啊weekdate就等于0,1,2,3,4,5,6
还是多看看书吧
set language N'Simplified Chinese'
select datename(weekday, 数据添加日期列名) as dayOnweek, from 表名
where datediff(week,数据添加日期列名,'2014-11-1')=0
select DATENAME(week,getdate())
这是取当前日期的第几周
如果要指定字段的只要把getdate()换为字段名称 如:
select DATENAME(week,字段名称) as weekNum from 表名称
参照下面的关于DATENAME
>
一、dateadd()方法说明
sql server提供了日期函数dateadd用于获得某日期指定间隔后的日期。
1
定义和用法
dateadd()
函数在日期中添加或减去指定的时间间隔。
2
语法
dateadd(datepart,number,date)
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
datepart 参数可以是下列的值:
datepart
缩写
年
yy,
yyyy
季度
qq,
q
月
mm,
m
年中的日
dy,
y
日
dd,
d
周
wk,
ww
星期
dw,
w
小时
hh
分钟
mi,
n
秒
ss,
s
毫秒
ms
微妙
mcs
纳秒
ns
实例
假设我们有下面这个
"orders"
表:
orderid
productname
orderdate
'computer'
2016-12-29
16:25:46635
现在,我们希望向
"orderdate"
添加
2
天,这样就可以找到付款日期。
我们使用如下
select
语句:
select
orderid,dateadd(day,2,orderdate)
as
orderpaydatefrom
orders
结果:
orderid
orderpaydate
2016-12-31
16:25:46635
二、sql代码
print dateadd(day, -3, getdate())
三、运行测试
05 20 2017 3:10pm
以上就是关于SQL数据库 怎么自定义哪一天到哪一天为一周全部的内容,包括:SQL数据库 怎么自定义哪一天到哪一天为一周、sql server 2005 怎么获取本周的数据、sql怎么取出某一周的七天数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)