如何在一个月内获得星期五的日期 [英] How to get Friday dates in a Month

查看:76
本文介绍了如何在一个月内获得星期五的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在一个月内获得星期五的约会?假设7月份有4个星期五。我想要检索日期。我不使用任何数据库表。请帮帮我。

How can I get Friday dates in a month? Suppose in July there are 4 Friday. I want to retrieve the dates. I don't use any database table. Please help me.

推荐答案

试试这个.. :)



try this.. :)

declare @DateFrom datetime,@DateTo datetime
set @DateFrom='23 Mar 2014'
set @DateTo='26 Jun 2014'

;WITH CTEQuery AS (
			  SELECT CAST(@DateFrom AS DATETIME) AS dt
			  UNION ALL
			  SELECT DATEADD(dd, 1, dt)
			   FROM CTEQuery s
			   WHERE DATEADD(dd, 1, dt) <= CAST(@DateTo AS DATETIME)
			   ),sampleData as(
select dt,datename(WEEKDAY,dt)as [DayName] from CTEQuery )
select * from sampleData where [DayName]='Friday'





你必须从代码后面传递@ DateFrom 和@ DateTo ,你将ge那些星期五之间的日期日期..:)



you have to just pass @DateFrom and @DateTo from code behind and you will get all friday dates between there dates.. :)






首先,我假设你'使用 SQL Server 。这是一个示例(查询应该在 SQL Server 2005 或更高版本中工作):

Hi,

First of all, I'm assuming that you're using SQL Server. Here's an example (the query should work in SQL Server 2005 or above):
DECLARE @Year      VARCHAR(4),
        @Month     VARCHAR(3),
        @FirstDate DATETIME,
        @LastDate  DATETIME;

SET @Year = '2014';
SET @Month = '07'; -- '07' or 'Jul'
SET @FirstDate = (SELECT CAST(( @Year + @Month + '01' ) AS DATETIME));
SET @LastDate = DATEADD(DAY, -1, ( DATEADD(MONTH, 1, @FirstDate) ));

;WITH Fridays([Date])
     AS (SELECT [Date] = @FirstDate
         UNION ALL
         SELECT [Date] = DATEADD(DAY, 1, [Date])
         FROM   Fridays
         WHERE  [Date] < @LastDate)
SELECT [Date]
FROM   Fridays
WHERE  DATENAME(WEEKDAY, [Date]) = 'Friday';



注意:考虑到输入参数和 SQL Server 的版本,可以(应该)改进此查询。



结果:


Note: This query could (should) be improved considering your input parameters and version of the SQL Server.

Result:

Date
2014-07-04 00:00:00.000
2014-07-11 00:00:00.000
2014-07-18 00:00:00.000
2014-07-25 00:00:00.000





如果您需要进一步帮助,请与我们联系。



Please let me know if you need further assistance.


DECLARE @StartDate date = '2014-07-01'
DECLARE @EndDate date = '2014-07-31' 
CREATE TABLE #tblGetFriday ([Friday] Date)

WHILE @StartDate <> CONVERT(date,@EndDate)
BEGIN
	IF((SELECT UPPER(DATENAME(dw, @StartDate))) = 'FRIDAY')
	BEGIN	
		INSERT INTO #tblGetFriday SELECT @StartDate As Fridays
	END
	
	
	SET @StartDate = DATEADD(Day,1,@StartDate)
END

SELECT * FROM #tblGetFriday
DROP TABLE #tblGetFriday


这篇关于如何在一个月内获得星期五的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆