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

怎么使用sql语句查询日期所在周的一周各天

发布网友 发布时间:2022-04-25 17:09

我来回答

1个回答

热心网友 时间:2022-04-07 21:25

检索日期所在周的一周各天日期方法

一、用到的函数有datepart(),dateadd()

1、datepart()函数,返回代表指定日期的指定日期部分的整数。

语法:DATEPART ( datepart ,date )

参数:datepart

是指定应返回的日期部分的参数。参数如下

2、DATEADD() 函数在日期中添加或减去指定的时间间隔。

语法:DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart 参数可以是下列的值:

二、以系统当前时间为例,检索一周各天时间的语句如下:

1、DATEPART(weekday,getdate())返回的是整型数值1-7,分别代表周日、周一到周六

2、语句分别获取周日到周六的日期时间,然后用union 进行检索结果连接。

3、已获取周日时间为例:

DATEPART(weekday,getdate()) 返回1,即当前日期就是周日,那么输出当前时间getdate(),

DATEPART(weekday,getdate()) 返回2,即前日期是周一,那么周日是前一天,使用函数获取前一天的日期:dateadd(dd,-1,getdate())

以此类推就获取了日期所在周的周日日期时间。

select 
case when DATEPART(weekday,getdate())=1 then getdate() 
     when DATEPART(weekday,getdate())=2 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,-2,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,-3,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,-4,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-5,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-6,getdate()) end as '日期','周日' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,-2,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,-3,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-4,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-5,getdate()) end as '日期','周一' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,-2,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-3,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-4,getdate()) end as '日期','周二' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,3,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-2,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-3,getdate()) end as '日期','周三' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,4,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,3,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-2,getdate()) end as '日期','周四' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,5,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,4,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,3,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-1,getdate()) end as '日期','周五' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,6,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,5,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,4,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,3,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,0,getdate()) end as '日期','周六'

三、执行结果

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
特别精辟的个性签名(非常经典的个性句子) 特别经典的个性签名(非常惊艳的个性句子) 文艺范十足的个性签名(温柔治愈的个性签名句子) wps文字怎么设置每页头和尾 27岁的女人需要补充哪些营养元素 27岁该重视美容了吗?都可以用哪些方法好些呢? airpods连不上手机怎么回事 - 知百科 腰肌劳损能养好吗? 有一段相声讲的是原始人打猎,唱歌,学说话的,请问名字是什么? 个人征信逾期记录的修复攻略,手把手传授 auto CAD制图 关于时间段查询的SQL语句应该怎么写? 用CAD画一个钣金图 钣金上边有螺丝孔 如果直径是6的螺丝 在图上需要画多大的孔啊 需要留多少出血? sql中怎么取得当前时间 CAD怎么画这个M8的螺纹孔,主视图,和俯视图的,谢谢,感觉不是画个圆就完事了,我是新手! 在CAD的标注中6-M6均布是什么意思?它指是画螺纹吗?怎么画 Sql中取得当前系统时间? 我以前脸上长了很多青春痘,有痘疤和一些小坑,有些里面还有些黑的东西,有什么办法能自己在家解决么? 请问这要怎么画?特别那尖的部分怎么做出来 非诚勿扰我的看法 请问我的脸上曾经起过痘痘的地方留下了小坑,该怎么办啊?谢谢 AutoCAD M6的螺丝孔怎么画? CAD中螺纹孔怎么画? 我男朋友的兄弟叫我看非诚勿扰是什么意思? 求梦幻西游各门派加点方法,主流的越全越好 我要看非诚勿扰 2 梦幻西游门派 非诚勿扰现在在哪里录制,我想看现场录制, 为什么非诚勿扰 这一个星期都没有更新了,我要看啊 抓狂。。。。。。。。。 带娃旅行,记住哪些技巧能帮你减少很多烦恼? 4×M6-6B CAD怎么画? cad 里面的标注里面的M6-5H6H什么意思,如下图,请详细一点,谢谢 sql语句怎么查询在某日期的数据 cad里怎么画通孔 CAD图纸M6-H6是什么意思 SQL 查询语句怎么在where中添加系统当前时间,比如where 当前时间 bet... CAD制图轴类标注如:M6深10及16N9分别表示什么? 求CAD的M12和M6的螺母怎么绘制。我不知到尺寸。求好心人帮忙,谢谢。。。。书上给的尺寸感觉不够 SQL中两个日期的查询语句怎么写? 关于初学CAD的一个问题 标注尺寸时cad中螺纹孔深度 那个符号怎么标注出来? 华为手机提示云空间已满怎么办? 华为云空间满了影响手机使用吗 华为手机云空间已满怎样解决? 华为手机点击云空间突然跳出手机已root继续使用空间可能会造成风险怎么办? 华为云空间已满怎么办怎么删除 中秋的月亮像什么样的? 黑头粉刺怎么去掉? 黑头粉刺的祛除方法 去黑头粉刺的方法?