Sql 删除两个日期之间的特定天数名称
我需要从SQLServer中的两个日期(开始日期|结束日期)中按名称删除特定的日期,如示例所示Sql 删除两个日期之间的特定天数名称,sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要从SQLServer中的两个日期(开始日期|结束日期)中按名称删除特定的日期,如示例所示 START DATE "12/12/2020" END DATE "30/12/2020" 在这两个日期中,我从整个星期的星期一中删除,并计算没有星期一的天数。这是您想要的吗 delete from t where date >= @startdate and date <= @enddate and datename(
START DATE "12/12/2020" END DATE "30/12/2020"
在这两个日期中,我从整个星期的星期一中删除,并计算没有星期一的天数。这是您想要的吗
delete from t
where date >= @startdate and date <= @enddate and
datename(weekday, date) = 'Monday';
从t中删除
其中date>=@startdate和date您可以使用函数datename()
获取当天的名称:
declare @startdate date = '2020-12-12'
declare @enddate date = '2020-12-30'
select count(*)
from tablename
where datecolumn between @startdate and @enddate
and datename(w, datecolumn) <> 'Monday';
declare@startdate date='2020-12-12'
声明@enddate日期='2020-12-30'
选择计数(*)
从表名
其中datecolumn介于@startdate和@enddate之间
和datename(w,datecolumn)‘星期一’;
样本数据和期望的结果将阐明您想要做什么。您不需要对我们大喊大叫(!!),您正常的内部声音很好;我们可以很好地理解你,但不需要大写。请阅读一些关于改进你的问题的提示。提示:(@@DateFirst+DatePart(weekday,SampleDate)-1)%7+1
将始终返回一个从1
到7
的整数,其中1
对应于星期天,而不管DateFirst
或Language
的设置如何。这个问题看起来可疑地类似于。学生们似乎在寻找同一个家庭作业的帮助。正如其他人所说,在将来写一个好问题时,请确保你有样本数据、预期结果和你的尝试。并确保您的样本数据涵盖了您希望包含在解决方案中的所有边缘情况。我认为您指的是工作日,甚至是DW而不是dow。@johncapelletti。我不认为我第一次写对了dow
看起来就像是日期部分的名称。在我的小脑袋里也是如此。非常感谢您,但我不明白这一行“其中,介于“startdate”和“enddate”之间的datecolumn”正是我的codedatecolumn
中的datecolumn是表中包含日期的列。必须使用列的实际名称对其进行更改。在WHERE子句中,条件是日期必须介于所需的开始日期和结束日期之间。