首先说明你的DATEDIFF(dd,0,getdate()),这个表示获取当前日期与0之间的天数差,dd表示是用来表示天.然后DATEADD(dd, DATEDIFF(dd,0,getdate()), 0),这个是用来表示0加上你刚才获取的天数差后的日期~
创新互联公司是一家专业提供奉化企业网站建设,专注与网站制作、成都网站建设、H5建站、小程序制作等业务。10年已为奉化众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
具体的说明如下,你可以自己了解~
------------------------------------------------------------------
DateAdd函数 返回
返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。
语法
DateAdd(interval, number, date)
DateAdd 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,是所要加上去的时间间隔。
number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。
设置
interval 参数具有以下设定值:
设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
说明
可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。
为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数” (”w”)。
DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月:
DateAdd(m, 1, 31-Jan-95)
上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。
如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。
如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。
注意 DateAdd 返回值的格式由 Control Panel设置决定,而不是由传递到date 参数的格式决定。
=========================================
DateDiff: SQL server函数
返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
语法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
设置
interval 参数的设定值如下:
设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
----------------------------------------------------------
以上部分来源于百度
谁说SQL没有定义星期的函数!!datepart,datename都可以。 select number,dateadd(month,-1,getdate()-(datepart(day,getdate())))+number from master.dbo.spt_values where type='p' and number between 1 and 31 and datepart(weekday,dateadd(month,-1,getdate()-(datepart(day,getdate())))+number) in (1,7) 这个语句可以实现,原理是配合系统的master.dbo.spt_values 表查询日期是在1或7的(外国星期日是1)
指定一个起始日,计算到该日的天数,/7 得到经过的周数。然後按这个周数分组。
试试select
dateadd
例如:向日期加上2天
select
dateadd(day,2,'2004-10-15')
--返回:2004-10-17
00:00:00.000
dateadd函数说明:
DateAdd
(interval,number,date)
以interval指定的方式,加上number之后的日期
参数
interval的设定值如下:
值
缩
写(Sql
Server)
(Access
和
ASP)
说明
Year
Yy
yyyy
年
1753
~
9999
Quarter
q
季
1
~
4
Month
Mm
m
月1
~
12
Day
of
year
Dy
y
一年的日数,一年中的第几日
1-366
Day
Dd
d
日,1-31
Weekday
Dw
w
一周的日数,一周中的第几日
1-7
Week
Wk
ww
周,一年中的第几周
~
51
Hour
Hh
h
时0
~
23
Minute
Mi
n
分钟0
~
59
Second
Ss
s
秒
~
59
Millisecond
Ms
-
毫秒
~
999
下面的语句取当前日期所在的星期的星期一的日期
select
dateadd(day,
2-datepart(weekday,getdate()),getdate())
根据条件替换getdate(),就可以了
GETDATE()
是获取当前时间的函数
取上周时间 需要用当前的减几天
需要知道 你想取得具体是什么时间
这个可以直接百度的,给你的连接应该就足够你用了
SQLServer查询今天/昨天/本周/本月的记录