问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL日期计算

发布网友 发布时间:2022-04-08 08:39

我来回答

5个回答

热心网友 时间:2022-04-08 10:08

SELECT
convert(varchar(10),DATEADD(wk, DATEDIFF(wk,0,dateadd(wk,24,'2009-01-01')), 0),120) 起始日期,
convert(varchar(10),DATEADD(wk, DATEDIFF(wk,0,dateadd(wk,24,'2009-01-01')), 6),120) 结束日期

上面求第25个周起止时间,求第20周把24改成19即可。

***************************************
补充解释一下:
1:dateadd(week,24,'2009-01-01')是在'2009-01-01'的基础上加上24周,算上'2009-01-01'所在的周正好是25周,但是这个加法是以7天为基数加的,换句话说'2009-01-01'是周几,加完之后也是周几。
2:DATEDIFF(wk,0,dateadd(wk,24,'2009-01-01'))
【0代表1900年1月1日00:00】,这个是求第1步算出的日期和【1900年1月1日00:00】年的星期差。
3:DATEADD(wk, DATEDIFF(wk,0,dateadd(wk,24,'2009-01-01')), 0)
是求出第一步求出的日期所在周的周一的日期。
4:DATEADD(wk, DATEDIFF(wk,0,dateadd(wk,24,'2009-01-01')), 6)
是求出第一步求出的日期所在周的周日的日期。
5:convert(varchar(10),xxxx,120)是求出第3或者4步中时间的 年份+月份
**************************************

---
以上,希望对你有所帮助。

热心网友 时间:2022-04-08 11:26

写了一个存储过程,不知楼主是否用的上:
功能描述:根据传入的年份,周数,将返回该周的开始和结束日期
说明:我这里是按照你的说法计算的周,如果要按系统正常返回的周,只要去掉最后一条语句中的两个dateadd()函数即可

create proc get_date

@y varchar(10),--年份
@wk int--周
as
set @y=@y+'0101'
declare @beg_date datetime,@end_date datetime
set @beg_date=convert(datetime,@y)
select @end_date=dateadd(ms,-3,dateadd(yy,datediff(yy,0,@y )+1,0))
if object_id('tempdb..#tb') is not null
drop table #tb

create table #tb(t_id int identity(1,1),the_date varchar(10),the_week int)
while @beg_date<=@end_date
begin
insert into #tb(the_date,the_week)
select convert(varchar(8),@beg_date,112),datename(week,@beg_date)
set @beg_date=dateadd(d,1,@beg_date)
end
select convert(varchar(10),min(dateadd(day,1,the_date)),120) 开始日期,
convert(varchar(10),dateadd(d,1,max(the_date)),120) 结束日期 from #tb where the_week=@wk

GO
--调用
exec get_date '2009',25

热心网友 时间:2022-04-08 13:01

case
when
date>sysdate
then
substr(date,1,4)-substr(sysdate,1,4)||'年'||substr(date,4,2)-substr(sysdate,4,2)||'月'
when
date
like
'200803'
then
'0年0月'
改成这样就ok了
case
when
date>sysdate
then
substr(date,1,4)-substr(sysdate,1,4)||'年'||abs(substr(date,4,2)-substr(sysdate,4,2))||'月'
when
date
like
'200803'
then
'0年0月'
那就再改
case
when
date>sysdate
and
substr(date,1,4)>=substr(sysdate,1,4)
and
substr(date,4,2)>substr(sysdate,4,2)
then
substr(date,1,4)-substr(sysdate,1,4)||'年'||abs(substr(date,4,2)-substr(sysdate,4,2))||'月'
when
substr(date,1,4)>substr(sysdate,1,4)
and
substr(date,4,2)
评论
0
0
0
加载更多

热心网友 时间:2022-04-08 14:52

1,
select dateadd(dd,2-datepart(dw,dateadd(wk,周数-1,年份)),dateadd(wk,周数-1,周数)),dateadd(dd,8-datepart(dw,dateadd(wk,周数-1,周数)),dateadd(wk,周数-1,周数))
注意:年份的格式为‘****-01-01’,如你这里的2009年则是‘2009-01-01’
2,
declare @i int
declare @datetime datetime
declare @table table(ID int,date datetime)
set @i=1
set @datetime=年份+月份+01(格式如‘2009-06-01’)
while @datetime < 年份+(月份+1)+01(格式如‘2009-07-01’)
begin
if datepart(weekday,@datetime)=2
begin
insert into @table values(@i,@datetime)
set @i=@i+1
end
set @datetime=dateadd(day,1,@datetime)
end
select * from @table where ID=周数
我这样写应该很容易看,有什么问题再问我,要求加分……

热心网友 时间:2022-04-08 17:00

select 本年第多少周=datename(week,'2009-6-20')

,今天是周几=datename(weekday,'2009-6-20')
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
虹口区东余杭路541弄算几号地块?12年下半年号称要拆,附近都在拆类,明... 我想知道新建路东余杭路这二年有没有拆迁规划? 手机通话变声器哪种好 变声器哪个好用 我准备7月底开始复习考研,还来得及吗 大四下学期考研还来得及吗 考研还来得及吗 ...在脊椎骨右边靠脊椎骨附近疼,是什么原因,大概有半个多月了,弯腰时... 电脑开着总是无缘无故蓝屏提示 电脑开着总是无缘无故蓝屏 电脑无缘无故蓝屏怎么回事探究电脑突然蓝屏的原因 梦到自己从高山上滑滑板一样顺利滑到山低 快播更新-第五空间30集31集全集中文字幕DVD视频在线 - 信息提示 - 信息提示 回家的*71 72 73 74 75视频全集DVD高清在线观看 回家的*QVOD快播高清下载地址 电影欢迎爱光临第12集全集在线观看 第12集高清下载 QVOD快播视频 - 信息提示 快播在线看视频速度多少不会卡 收获的季节快播全集在线观看地址 personal versus Social Identity 全文翻译 social workers should learn how to look 什么 people social的汉语意思 麻烦帮我翻译一下论文的摘要,急用,谢谢! 请问social 和 societal之间有什么区别啊? social workers是什么意思 What are the three most important things in your 急求一篇描写森林火灾过程的英语作文,不要软件翻译的,字数多多益善 怎样区分单词“social”和“sociable” 关于social的句子 高分请大家帮我把这几句话翻译成英文·· 梦见我踩着滑板车,两条狗拉着我走什么意思? 梦见自己做着滑板回家是怎么回事? 2011款福克斯白色引擎盖上颜色发黑。 镀晶蜡到底是什么,有什么作用 镀晶上当了后悔 镀晶和镀晶蜡的区别是什么? 我黑车简单抛光镀晶后,店主让我以后打一种镀晶蜡,就可以一直持久下去,不用再去补镀晶,这样对吗?在线 镀晶蜡什么用 引擎盖镀晶后发白 新车买回来半年就打蜡了会不会快了一点 黑色车门抛光后发乌不亮,这是为什么? 3m车蜡官方网站,3m车蜡怎么样,3m车蜡的价格? 新车镀晶后一年以后可以用液体蜡或者镀晶蜡吗 新车要不要打蜡,还是镀晶,甚至有人上车衣 镀晶蜡与镀晶剂有什么不同 5e多少分算高手? 中兴U880现在可以刷安卓4.0冰激凌吗?可以的话求教程 求下载地址 苹果的IOS都能刷安 黑色橡皮泥可以捏成什么食物 兔子面包怎么捏 孔明锁怎么玩?