sql语名如何查找出当前日期前一个星期六的数据,谢谢!

2025-03-23 05:43:22
推荐回答(6个)
回答1:

1.字段是日期型的话:
select .... from table where 日期字段 = dateadd(dd,(-1)*(datepart(dw,getdate())),getdate())
2.字段是字符串型的话,需要知道字符串日期的格式,然后使用convert函数就可以搞定

回答2:

上个星期的星期6=本星期的上一星期的日子对应的6-weekday,
如果是星期天,那就方便了,就昨天
select
case when
datepart(weekday,getdate())=0 then dateadd(day,-1,getdate())
else
dateadd(day,6-datepart(weekday,dateadd(week,-1,getdate())),dateadd(week,-1,getdate()))
end

回答3:

declare @dt datetime
set @dt = '2011-03-09'

select @dt - DATEPart(weekday,@dt)
datepart是SQLSERVER里的函数,不知道其他数据库用什么

回答4:

时间为: 当前的时间 减去 当前日期 减去 1
select dateadd(dd,-(datepart(dw,getdate())),getdate())

dateadd(dd,1,getdate()) 当前日期加几天
datepart(dw,getDate()) 获得 星期几的数字

SELECT id, cb, dep, kb, zb, update_time, now_num, real_person, today_ziyuan, xiujia, lx_person, nan, nv, memo, writer, lizhi, in_time FROM hrdata WHERE update_time=dateadd(dd,-(datepart(dw,getdate())),getdate())

你试试吧!

回答5:

我的方法比较笨,先求前一个星期六的日期,然后用sql语句查
wk = weekday(date()) +1
y1=year(date())
m1=month(date())
d1=day(date())
d2 = int(d1)-int(wk)
if d2<=0 then m1=m1-1
if m1<=0 then y1=y1-1:m1=12

if m1=1 or m1 =3 or m1 =5 or m1 =7 or m1 =8 or m1 =10 or m1 =12 then d3=31 + d2
if m1=4 or m1 =6 or m1 = 9 or m1 = 11 then d3 = 30 + d2
if m1 = 2 then
if y1 mod 4 =0 then
d3 = 29 + d2
else
d3 = 28 + d2
end if
end if

nd = y1 & "-" & m1 & "-" & d3
nd = cdate(nd)

where update_time = 'nd'

回答6:

select dateadd(week,-1,dateadd(day,7-datepart(dw, getdate()), getdate()))