欢迎莅临 SUN WU GANG 的园子!!!

世上无难事,只畏有心人。有心之人,即立志之坚午也,志坚则不畏事之不成。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

星期获取操作

--设置语言,这个很重要,会导致不同的返回结果 (只需设置一次语言后,就可以重复调用 DATENAME)
 SET LANGUAGE N'Simplified Chinese' --简体中文
 --SET LANGUAGE N'English' --英文
 --SET LANGUAGE N'Korean'--韩文

--获取指定日期为星期几 GETDATE()当天日期,GETDATE()+1 下一天......
SELECT DATENAME(weekday,GETDATE())
--明天是周几
SELECT DATENAME(weekday,GETDATE()+2) --获取星期几
--昨天是周几
SELECT DATENAME(weekday,GETDATE()-1) 

方式二:

--设置语言,这个很重要,会导致不同的返回结果 (只需设置一次语言后,就可以重复调用 DATENAME)
SET LANGUAGE N'Simplified Chinese' --简体中文
--SET LANGUAGE N'English' --英文
--SET LANGUAGE N'Korean'--韩文

--返回一周的第几天,星期天对应 1 
select DATEPART(weekday,GETDATE()+2)

--返回星期几 
SELECT DATENAME(weekday,GETDATE())


--来个示例
declare
@week varchar(10),@weekname varchar(10)
--1.获取星期几参数一
--set @week=@@DATEFIRST 
--2.获取星期参数二
set @week=DATEPART(weekday,GETDATE()+2)
set @weekname=DATENAME(weekday,GETDATE()+2)

select @weekname as weekname,@week as weekno,
case @week 
when 1 then '星期日'
when 2 then '星期一'
when 3 then '星期二'
when 4 then '星期三'
when 5 then '星期四'
when 6 then '星期五'
when 7 then '星期六'
end as week2

获取本周、上周--对应日期及星期

-- 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 '本周日'

日期:

select cast(GETDATE() as varchar)
SELECT CAST(GETDATE() AS varchar)    --输出 07 1 2013 9:56PM
SELECT CONVERT(varchar,GETDATE(),5)    --输出 01-07-13
SELECT CONVERT(varchar,GETDATE(),111)  --输出 2013/07/01
SELECT CONVERT(varchar,GETDATE(),1)    --输出 07/01/13
SELECT CONVERT(varchar,GETDATE(),102)    --输出 2020.11.24
SELECT CONVERT(varchar,GETDATE(),111)  --输出 2020/11/24
SELECT CONVERT(varchar,GETDATE(),120)    --输出 2020-11-24 09:29:55
SELECT CONVERT(varchar,GETDATE(),101)    --输出 09:29:55 
select convert(char(20) ,convert(datetime,'20220310') , 21) as dd	--2022-03-10 00:00:00.
select convert(char(20) ,convert(datetime,'20220310') , 22) as dd	--03/10/22 12:00:00 AM
select convert(char(20) ,convert(datetime,'20220310') , 23) as dd	--2022-03-10          
select convert(char(20) ,GETDATE() , 21) as dd	--2023-06-07 14:10:43.
select convert(datetime,'20220310')  as dd		--2022-03-10 00:00:00.000

 

posted on 2023-06-09 10:07  sunwugang  阅读(2)  评论(0编辑  收藏  举报