微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

获取上周五的日期,除非今天是星期五使用T-SQL

我正在尝试获取正确的sql代码获取上周五的日期.几天前,我以为我的代码是正确的.但只是注意到它已经到了上周的星期五,而不是上周五.我写这个问题的那天是星期六,8/11/2012 @ 12:23 am.在sql Server中,此代码将于2012年8月3日星期五返回.但是,我希望这会在周五,8/10/2012返回.我该如何修复此代码?由于我们在这里详细说明,如果当天是星期五,那么我想回到今天的日期.所以,如果它是昨天(2012年8月8日)并且我昨天运行了这段代码,那么我希望这段代码返回8/10/2012,而不是8/3/2012.
SELECT DATEADD(DAY,-3,DATEADD(WEEK,DATEDIFF(WEEK,GETDATE()),0))

解决方法

尝试这个:
declare @date datetime;
set @date='2012-08-09'
SELECT case when datepart(weekday,@date) >5 then
 DATEADD(DAY,+4,@date),0)) 
else DATEADD(DAY,0)) end

结果:

2012-08-03

例2:

declare @date datetime;
set @date='2012-08-10'
SELECT case when datepart(weekday,0)) end

结果:

2012-08-10

原文地址:https://www.jb51.cc/mssql/84095.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐