sql server 获取上周几和本周几

摘要:
--Sqlserver获取星期几和星期几--@@DATEFIRST从星期几开始,星期一是1,星期日是7,某些计算机默认为7,某些机器是1SELECT@@DATEFIRST--修改@@DATEFIRstSETDATEFIRST7的值--查询当前星期开始时的星期几,今天是星期几SELECT@@DATEFIRSTAS“startday”,DATEPARTas“工作日”--通过weekday和@@DATEFIRST共同计算,平滑@@DATEFIRS设置中的差异--SELECTCONVERTas“上星期一”、CONVERTas“上星期二”、CONVENTAS“最后星期三”、CONVATS“上星期四”、CONVIDTAS“下星期五”、CONFORTAS“上周六”、CONDUTAS“最近星期日”--SELECTCOVERTAS”本星期一“、CONVERTADS“本星期二”,CONVERTas“本周三”,CONVERTas“本周四”,CONVENTAS“周五”,CONVATS“本周六”,CONVIDTAS“周日”
-- sql server 获取上周几和本周几

-- @@DATEFIRST 每周以周几开始,周一是 1 ,周日是 7 ,有些机器默认是7,有些机器默认是1
SELECT @@DATEFIRST
-- 修改 @@DATEFIRST 的值
SET DATEFIRST 7
-- 查询当前每周是以周几开始,今天是一周的第几天
SELECT @@DATEFIRST as 'startday', DATEPART(dw,GETDATE()) as 'weekday'

-- 通过 WEEKDAY 和 @@DATEFIRST 联合计算,抹平 @@DATEFIRST 设置的差异

-- 上周
SELECT 
 CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) - 6, GETDATE()) ) as '上周一'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) - 5, GETDATE()) ) as '上周二'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) - 4, GETDATE()) ) as '上周三'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) - 3, GETDATE()) ) as '上周四'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) - 2, GETDATE()) ) as '上周五'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) - 1, GETDATE()) ) as '上周六'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) - 0, GETDATE()) ) as '上周日'

-- 本周
SELECT 
 CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) + 1, GETDATE()) ) as '本周一'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) + 2, GETDATE()) ) as '本周二'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) + 3, GETDATE()) ) as '本周三'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) + 4, GETDATE()) ) as '本周四'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) + 5, GETDATE()) ) as '本周五'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) + 6, GETDATE()) ) as '本周六'
,CONVERT(DATE, DATEADD(dd, -DATEPART (WEEKDAY ,GETDATE() + @@DATEFIRST - 1) + 7, GETDATE()) ) as '本周日'

免责声明:文章转载自《sql server 获取上周几和本周几》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# Lodop实现打印ELK常见错误分析(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js 中时间格式化的几种方法

1.项目中时间返回值,很过时候为毫秒值,我们需要转换成 能够看懂的时间的格式; 例如: yyyy-MM-dd HH:mm:ss 2.处理方法(处理方法有多种,可以传值到前端处理,也可以后台可以好之后再传递到页面) 方法一:实体类中添加时间转换注解(注意时区问题) /** * 开始时间 */ @JsonFormat(pattern...

linux定时重启节约内存

linux服务器上运行的一些程序,比较消耗内存,需要定时重启,进行内存定期释放 0 2 * * * sudo /sbin/reboot && echo $(date) '重启成功' >> ~/reboot_log.log 上面这种写法,日志是不会写入reboot_log.log的 crontab -u root -e 0 2 *...

Oracle高级查询之over(partition by..)

查看原文:http://ibloger.net/article/248.html 为了方便学习和测试,所有的例子都是在Oracle自带用户Scott下建立的。 [sql]view plaincopyprint? create table EMP   (     empno    NUMBER(4) not null,     ename    ...

php时间戳和日期转换,以及时间戳和星期转换

$this->created_at为时间戳值,转换日期如下 date('m.d',$this->created_at) :  y 代表年的后两位如 17 ,Y 代表 2017  , m 代表数字月,M 代表英文月 ,d代表日,D代表星期 (英文的) 想要显示中文星期,则要:  $weeks =['周一','周二','周三','周四','周五',...

定时任务应该这么玩

1.场景 在电商系统中会经常遇到这样一种场景,就是商品的定时上下架功能,总不能每次都手动执行吧,这个时候我们首先想到的就是利用定时任务来实现这个功能。 目前实现定时任务主要有以下几种方式: JDK自带 :JDK自带的Timer以及JDK1.5+ 新增的ScheduledExecutorService; 第三方框架 :使用 Quartz、elastic-j...

js求指定时间的周一和周日

/*计算指定时间的的周一和周日 return=>{mondy:Date,sundy:Date} parms:{ date:指定时间,如果不指定则取当前时间 } */ functiongetWeekArea(d...