当前时间 select getdate()
当前时间周的起始日期(以周一为例)select DATEADD(week,DATEDIFF(week,0,getdate()),0)
上周起始:select dateadd(week,-1,DATEADD(week,DATEDIFF(week,0,getdate()),0))
上上周起始:select dateadd(week,-2,DATEADD(week,DATEDIFF(week,0,getdate()),0))
上上上周起始:select dateadd(week,-3,DATEADD(week,DATEDIFF(week,0,getdate()),0))
周七以此类推
sql语句怎么获取系统时间
sql读取系统日期和时间的方法如下:
--获取当前日期(如:yyyymmdd)
select CONVERT (nvarchar(12),GETDATE(),112)
--获取当前日期(如:yyyymmdd hh:MM:ss)
select GETDATE()
--获取当前日期(如:yyyy-mm-dd)
Select Datename(year,GetDate())+'-'+Datename(month,GetDate())+'-'+Datename(day,GetDate())
--获取当前日期(如:yyyy/mm/dd)
select DATENAME(YEAR,GETDATE())+'/'+DATENAME(MONTH,GETDATE())+'/'+DATENAME(DAY,GETDATE())
--获取几种日期
select DATENAME(YEAR,GETDATE()) --年份(YYYY)
select DATENAME(YY,GETDATE())
select DATENAME(MM,GETDATE()) --月份
select DATENAME(DD,GETDATE()) --日期
select dateName(hh,getdate()) --获取小时
select DATENAME(MI,GETDATE()) --获取分钟
select DATENAME(SECOND,GETDATE()) --获取秒
select DATENAME(WEEK,GETDATE()) --获取当前星期(周)是这一年中的第几个星期(周)
select DATENAME(WEEKDAY,GETDATE()) --星期几
--第一个星期天
declare @a datetime
set @a='2022-5-25'
SELECT case when dateadd(dd,-day(@a)+1,@a)<DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,-day(@a)+1,@a)), 0)
then DATEADD(DD,-1,DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,-day(@a)+1,@a)),0))
else DATEADD(DD,6,DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,-day(@a)+1,@a)),0)) end
如果是第二个星期天,就把6改成:6+7=13,以此类推。
SELECT GETDATE() 当前时间,DATEADD(DAY,-CASE DATENAME(WEEKDAY,GETDATE()) WHEN '星期一' THEN 0
WHEN '星期二' THEN 1 WHEN '星期三' THEN 2 WHEN '星期四' THEN 3 WHEN '星期五' THEN 4 WHEN '星期六' THEN 5 ELSE 6 END,GETDATE()) 星期一日期,
DATEADD(DAY,CASE DATENAME(WEEKDAY,GETDATE()) WHEN '星期一' THEN 6
WHEN '星期二' THEN 5 WHEN '星期三' THEN 4 WHEN '星期四' THEN 3 WHEN '星期五' THEN 2 WHEN '星期六' THEN 1 ELSE 0 END,GETDATE()) 星期日日期
下面的语句取当前日期所在的星期的星期一的日期
select
dateadd(day,
2-datepart(weekday,getdate()),getdate())
根据条件替换getdate(),就可以了
--查某个日期所属的这个星期的记录
declare @datetime datetime
set @datetime = (SELECT time from user where 条件)
--前面两行的作用是从time列中按某条件取出一个值(即取出一个时间)
--下面才好根据这个时间判断一周内的记录
SET DATEFIRST 1 --设定周一为一周的第一天,默认为周日为第一天
SELECT from user
where time between (@datetime-DATEPART (Weekday,@datetime)+1)
and (@datetime+7-DATEPART (Weekday,@datetime)+1)
注:DATEPART(Weekday,datetime) 返回datetime是该周内的第几天。用法请参考Transact-SQL 参考
--查某个日期所属的这个季度的记录
SELECT from user
where time
between CONVERT(datetime,CONVERT(char(8),DATEADD(Month,DATEPART(Quarter,@datetime)3-Month(@datetime)-2,@datetime),120)+'1')
and DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+DATEPART(Quarter,@datetime)3-Month(@datetime),@datetime),120)+'1')
刚看到你的定向求助,在sqlserver中也有查询已知日期是星期几的函数。
如下举例:
SELECT DATEPART(WEEKDAY, 已知日期)。
如还有问题,请追问。
以上就是关于1.sql如何通过当前日期获取上周,上上周,上上上周的起始日期(周一_周七)全部的内容,包括:1.sql如何通过当前日期获取上周,上上周,上上上周的起始日期(周一_周七)、sql语句怎么获取系统时间、SQL 如何得到本月第一个星期天的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)