获取一周数据的设计 @@DATEFIRST

来源:互联网 发布:linux rm rf 删除文件 编辑:程序博客网 时间:2024/04/29 17:47

@@DATEFIRST
返回 SET DATEFIRST 参数的当前值,SET DATEFIRST 参数指明所规定的每周第一天:1 对应星期一,2 对应星期二,依次类推,用 7 对应星期日。

语法
@@DATEFIRST

返回类型
tinyint

注释
美国英语中默认 7 对应星期日。

示例
下面的示例将每周第一天设为 5 (星期五),并假定当日是星期六。SELECT 语句返回 DATEFIRST 值和当日是此周的第几天。

SET DATEFIRST 5
SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'

下面是结果集。从星期五算起,今天(星期六)是第二天。

1st Day          Today
----------------  --------------
5                2
-----------------------------------------------------------------------------------------------------------------

1.显示本月第一天


SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select convert(datetime,convert(varchar(8),getdate(),
120)+'01',120)

 


2.显示本月最后一天


select dateadd(day,-1,convert(datetime,convert
(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))

 


3.上个月的最后一天

 

SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))

 


4.本月的第一个星期一i


select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(
day,getdate()),getdate())),0)

 


5.本年的第一天


SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)

 


6.本年的最后一天


SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))

 


7.去年的最后一天


SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))

 


8.本季度的第一天


SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)

--------------------------------------------------------------------------

SELECT DATENAME(weekday, getdate())

SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),-1)
SELECT DATENAME(day, getdate())

DATEPART(wk, theDate) = DATEPART(wk, GETDATE())

DATEPART(yy, theDate) = DATEPART(yy, GETDATE())

SET DATEFIRST 1
SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, '2009-08-16') AS 'Today