天天看點

DateDiff函數

DateDiff函數傳回 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 秒

firstdayofweek 參數的設定值如下:

常數 值 描述

vbUseSystem 0 使用 NLS API 設定。

vbSunday 1 星期日(預設值)

vbMonday 2 星期一

vbTuesday 3 星期二

vbWednesday 4 星期三

vbThursday 5 星期四

vbFriday 6 星期五

vbSaturday 7 星期六

vbUseSystem 0 用 NLS API 設定。

vbFirstJan1 1 從包含 1 月 1 日的星期開始(預設值)。

vbFirstFourDays 2 從第一個其大半個星期在新的一年的一周開始。

vbFirstFullWeek 3 從第一個無跨年度的星期開始。

說明

DateDiff 函數可用來決定兩個日期之間所指定的時間間隔數目。例如,可以使用 DateDiff 來計算兩個日期之間相隔幾日,或計算從今天起到年底還有多少個星期。

為了計算 date1 與 date2 相差的日數,可以使用“一年的日數”(y) 或“日”(d)。當 interval 是“一周的日數”(w) 時,DateDiff 傳回兩日期間的周數。如果 date1 是星期一,DateDiff 計算到 date2 為止的星期一的個數。這個數包含 date2 但不包含 date1。不過,如果 interval 是“周”(ww),則 DateDiff 函數傳回兩日期間的“月曆周”數。由計算 date1 與 date2 之間星期日的個數而得。如果 date2 剛好是星期日,則 date2 也會被加進 DateDiff 的計數結果中;但不論 date1 是否為星期日,都不将它算進去。

如果 date1 比 date2 來得晚,則 DateDiff 函數的傳回值為負數。

firstdayofweek 參數會影響使用時間間隔符号 “W” 或 “WW” 計算的結果。

如果 date1 或 date2 是日期文字,則指定的年份成為該日期的固定部分。但是,如果 date1 或 date2 用雙引号 (" ") 括起來,且年份略而不提,則在每次計算表達式 date1 或 date2 時,目前年份都會插入到代碼之中。這樣就可以書寫适用于不同年份的程式代碼。

在計算 12 月 31 日和來年的 1 月 1 日的年份差時,DateDiff 傳回 1 表示相差一個年份,雖然實際上隻相差一天而已。

在看完上面的介紹,我們在使用時,例如:在GridView 或者 DateList 綁定資料的後面加上一句

<img src='<%#(Convert.ToInt16(DataBinder.Eval(Container.DataItem,"DayCount"))<3)?"images/new.gif":"images/none.gif" %>' border="0">

在背景代碼中:

綁定資料時SQL語句用

string sql="Select top 10 tid,title,datediff(day,tdate,getdate()) as DayCount from tb order by tid desc"

其中 tdate 是你釋出資訊的時間, DayCount就是目前時間與釋出資訊時間的間隔, 上例中選間隔時間在3天内的 标記一個"new"圖檔.

本文轉自linzheng 51CTO部落格,原文連結:http://blog.51cto.com/linzheng/1080891