sql server中输入一个年.月,求出这个月的第一个星期天是几号,这个月共多少天

declare @YearMonth varchar(20)
set @YearMonth = '2007.12'

declare @startingDate datetime
 set @startingDate = substring(@YearMonth,1,4) + '-01-'+ substring(@YearMonth,6,2)
SELECT Day(DATEADD(dd,-(DATEPART(dw, @startingDate ) - 7),@startingDate )) as FirstSunday ,
       DAY(DATEADD(d, -DAY(DATEADD(m,1,@startingDate)),
       DATEADD(m,1,@startingDate))) as DayNum
### 回答1: 你可以使用以下 SQL 语句来查询本周的周二: ``` SELECT DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 2) as ThisWeekTuesday; ``` 这段 SQL 语句使用了 `DATEADD` 和 `DATEDIFF` 函数,它们分别用来计算某个日期加上一个时间间隔以及两个日期之间的时间间隔。在这段语句,`GETDATE()` 用于获取当前日期,`DATEDIFF(wk, 0, GETDATE())` 用于计算当前日期与 `0`(代表 1970 1 1 日)之间的周数间隔,最后通过 `DATEADD` 函数计算当前周加上 2 (即周二)。 请注意,上述 SQL 语句是在 SQL Server 执行的,如果您使用的是其他数据库系统,可能需要使用不同的语法。 ### 回答2: 要查询本周周二的SQL语句可以使用如下代码: ```sql SELECT DATE_ADD(CURDATE(), INTERVAL (2 - WEEKDAY(CURDATE())) % 7 DAY) AS 本周周二; ``` 这个SQL语句使用了MySQL的内置函数来计算本周周二的日期。`CURDATE()`函数获取当前日期,`WEEKDAY()`函数获取当前日期是星期几(星期一对应0,星期二对应1,以此类推)。接着,使用`(2 - WEEKDAY(CURDATE())) % 7`来计算当前日期与周二之间的数差距,并使用`DATE_ADD()`函数将当前日期加上这个差距,得到本周周二的日期。 查询结果会返回一个名为"本周周二"的列,其包含本周周二的日期。 请注意,这个SQL语句假设星期日为每周的第一。如果星期一被视为每周的第一,则需要修改代码的数字2为数字3。另外,不同的数据库管理系统可能有不同的函数和语法来实现相同的目标。 ### 回答3: 要查询本周周二的SQL语句如下: SELECT DATEADD(day, -1 * (DATEPART(weekday, GETDATE()) + 5) % 7 + 2, CAST(GETDATE() AS DATE)) AS 本周周二 解释如下: 1. GETDATE() 函数用于获取当前日期和时间。 2. DATEPART(weekday, GETDATE()) 函数用于获取当前日期是一周的第几,返回值为1表示星期天,2表示星期一,依此类推。 3. (DATEPART(weekday, GETDATE()) + 5) % 7 + 2 的结果是用于计算当前日期距离上周周一的数相差多少。因为SQL星期的计算方式是以1为星期一,所以要将星期日转换为7,然后加2,这样就得到了当前日期距离上周周一的数相差多少。 4. DATEADD(day, -1 * (DATEPART(weekday, GETDATE()) + 5) % 7 + 2, CAST(GETDATE() AS DATE)) 的意思是将当前日期减去相差的数,得到上周周一的日期。 5. 最后以 SELECT 语句输出上周周一的日期。 希望以上的回答能够帮到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值