1、登錄SQL Server2008,新建一個(gè)查詢窗口,輸入:select 1,執(zhí)行,若輸出1,則數(shù)據(jù)庫(kù)檢測(cè)正常。
磁縣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站從2013年開(kāi)始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
2、在查詢窗口中輸入:Select getdate()并選中,單擊執(zhí)行或按F5,檢測(cè)當(dāng)?shù)貢r(shí)間是否準(zhǔn)確。
3、輸入:SELECT?32-DAY(getdate()+32-DAY(getdate())) ,選中并執(zhí)行,查看輸出結(jié)果。
4、輸入:select datediff(mm,0,getdate()),選中,執(zhí)行,查看輸出結(jié)果。
5、輸入查詢語(yǔ)句:select dateadd(mm,datediff(mm,0,getdate()),0),選中,執(zhí)行,查看輸出結(jié)果。
6、輸入SQL查詢:select dateadd(mm,datediff(mm,0,getdate())+1,0),選中,執(zhí)行,查看輸出結(jié)果。
7、輸入SQL查詢:select day(dateadd(mm,datediff(mm,0,getdate())+1,0)-1),選中,執(zhí)行,查看結(jié)果。
首先說(shuō)明你的DATEDIFF(dd,0,getdate()),這個(gè)表示獲取當(dāng)前日期與0之間的天數(shù)差,dd表示是用來(lái)表示天.然后DATEADD(dd, DATEDIFF(dd,0,getdate()), 0),這個(gè)是用來(lái)表示0加上你剛才獲取的天數(shù)差后的日期~
具體的說(shuō)明如下,你可以自己了解~
------------------------------------------------------------------
DateAdd函數(shù) 返回
返回包含一個(gè)日期的 Variant (Date),這一日期還加上了一段時(shí)間間隔。
語(yǔ)法
DateAdd(interval, number, date)
DateAdd 函數(shù)語(yǔ)法中有下列命名參數(shù):
部分 描述
interval 必要。字符串表達(dá)式,是所要加上去的時(shí)間間隔。
number 必要。數(shù)值表達(dá)式,是要加上的時(shí)間間隔的數(shù)目。其數(shù)值可以為正數(shù)(得到未來(lái)的日期),也可以為負(fù)數(shù)(得到過(guò)去的日期)。
date 必要。Variant (Date) 或表示日期的文字,這一日期還加上了時(shí)間間隔。
設(shè)置
interval 參數(shù)具有以下設(shè)定值:
設(shè)置 描述
yyyy 年
q 季
m 月
y 一年的日數(shù)
d 日
w 一周的日數(shù)
ww 周
h 時(shí)
n 分鐘
s 秒
說(shuō)明
可以使用 DateAdd 函數(shù)對(duì)日期加上或減去指定的時(shí)間間隔。例如,可以用 DateAdd 來(lái)計(jì)算距今天為三十天的日期;或者計(jì)算距現(xiàn)在為 45 分鐘的時(shí)間。
為了對(duì) date 加上“日”,可以使用“一年的日數(shù)” (“y”),“日” (”d”) 或“一周的日數(shù)” (”w”)。
DateAdd 函數(shù)將不返回有效日期。在以下實(shí)例中將 1 月31 日加上一個(gè)月:
DateAdd(m, 1, 31-Jan-95)
上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,則由于 1996 年是閏年,返回值是 1996 年 2 月 29 日。
如果計(jì)算的日期超前 100 年(減去的年度超過(guò) date 中的年份),就會(huì)導(dǎo)致錯(cuò)誤發(fā)生。
如果 number 不是一個(gè) Long 值,則在計(jì)算時(shí)取最接近的整數(shù)值來(lái)計(jì)算。
注意 DateAdd 返回值的格式由 Control Panel設(shè)置決定,而不是由傳遞到date 參數(shù)的格式?jīng)Q定。
=========================================
DateDiff: SQL server函數(shù)
返回 Variant (Long) 的值,表示兩個(gè)指定日期間的時(shí)間間隔數(shù)目。
語(yǔ)法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函數(shù)語(yǔ)法中有下列命名參數(shù):
部分 描述
interval 必要。字符串表達(dá)式,表示用來(lái)計(jì)算date1 和 date2 的時(shí)間差的時(shí)間間隔
Date1□date2 必要;Variant (Date)。計(jì)算中要用到的兩個(gè)日期。
Firstdayofweek 可選。指定一個(gè)星期的第一天的常數(shù)。如果未予指定,則以星期日為第一天。
firstweekofyear 可選。指定一年的第一周的常數(shù)。如果未予指定,則以包含 1 月 1 日的星期為第一周。
設(shè)置
interval 參數(shù)的設(shè)定值如下:
設(shè)置 描述
yyyy 年
q 季
m 月
y 一年的日數(shù)
d 日
w 一周的日數(shù)
ww 周
h 時(shí)
n 分鐘
s 秒
----------------------------------------------------------
以上部分來(lái)源于百度
declare?@time1?datetime,@time2?datetime
set?@time1='2016-11-24'
set?@time2='2015-11-11'
select?DATEDIFF(day,@time1,@time2)?as?[day],DATEDIFF(week,@time1,@time2)?as?[week],datediff(year,@time1,@time2)?as?[year]
datediff函數(shù),第一個(gè)是時(shí)間單位,例如按天算差距,或者按周算,
后面兩個(gè)就是要比較的時(shí)間參數(shù)。
drop function dbo.f_get_workdays
go
CREATE FUNCTION dbo.f_get_workdays(@bdate DATETIME, @edate DATETIME)
RETURNS INTEGER
AS BEGIN
DECLARE @workdays INTEGER
IF @bdate @edate
RETURN -1
SELECT @workdays =
--如果終止日期與起始日期在同一個(gè)星期內(nèi),只需要計(jì)算有幾天即可
CASE WHEN DATEPART(wk, @edate-1)-DATEPART(wk,@bdate) = 0 THEN
CASE WHEN DATEPART(dw, @bdate) 5 THEN 0
WHEN DATEPART(dw, @edate-1) 5 THEN 6 - DATEPART(dw, @bdate)
ELSE DATEPART(dw, @edate-1) - DATEPART(dw, @bdate) + 1 END
--如果終止日期與起始日期在不同的星期內(nèi)
--首先計(jì)算出除前后兩個(gè)星期外完整的星期數(shù) * 5
ELSE (DATEDIFF(dd,@bdate,@edate)
- (8-DATEPART(dw, @bdate))
- DATEPART(dw, @edate-1)) / 7 * 5
--再加上第一個(gè)星期里的工作日數(shù)
+ CASE WHEN DATEPART(dw, @bdate) 6 THEN 6 - DATEPART(dw, @bdate)
ELSE 0 END
--加上末一個(gè)星期里的工作日數(shù)
+ CASE WHEN DATEPART(dw, @edate-1)5 THEN 5 ELSE DATEPART(dw, @edate-1) END
END
RETURN @workdays
END
go
select dbo.f_get_workdays(dateadd(day,-21,getdate()),getdate())
select datediff(DD,F_StartDate,F_LastLoginTime) from TableName where ID=1
dd表示天
詳細(xì)對(duì)照表參考 :
可用如下sql語(yǔ)句:
select?convert(varchar(10),dateadd(DAY,t2.number,t1.day),120)?day?from
(select?'2015-07'+'-01'?day)?t1,
(select?number?from?MASTER..spt_values?WHERE?TYPE='P'?AND?number=0?and?number=31)?t2
where?convert(varchar(10),dateadd(DAY,t2.number,t1.day),120)?like?'2015-07%'
說(shuō)明:要查詢某年某月,只許將語(yǔ)句中的2015-07替換即可。
結(jié)果截圖: