Access中:DateDiff('d',Time1,Time2)
Sql中:DateDiff(d,Time1,Time2)
下面是我自己的sql語句
'判斷數據庫類型
IF IsSqlDataBase = 1 Then
Conn.execute("Delete from lyt_log_info where datediff(day,logintime,getdate())>=3 ")
Else
Conn.execute("Delete from lyt_log_info where datediff('d',logintime,now())>=3")
End IF
sql中d 或者day的引號不要 注意後面獲得系統時間的函數是不同的
如在Access中使用
Conn.execute("Delete from lyt_log_info where datediff(day,logintime,getdate())>=3 ")
則會提示
Microsoft JET Database Engine (0x80040E14)
表達式中 'getdate' 函數未定義。
如在Access中day或者w y等不加引號,會提示至少沒有一個參數被指定
例子:
以下為代碼部分:
Response.write "離2007-9-18還有"&datediff("d",now(),"2007-9-18")&"天"
距離某一天還有多少天,你可以修改下參數 ""d"" 算出距離某天還有多少月 多少week 多少 hour
注: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 表示相差一個年份,雖然實際上只相差一天而已。
DateAdd 和 DateDiff 的第一個參數
DateAdd 返回一個日期加上特定時間間隔後的值。
語法:DateAdd(interval, number, date)
interval 表示時間單位,即指示 number 是表示年,還是月,還是分,還是其它的,如下:
yyyy 年
q 季度
m 月
y 一年的日數
d 日
w 一周的日數
ww 周
h 小時
n 分鐘
s 秒
不好理解的是:y、w,開始我以為 y 的單位是 365天,w 的單位是 7天。其實不是的,細讀了微軟參考並作了測試後發現,這其中 y、w、d 是同意義的,表示天數。
另外,DateDiff 的第一個參數中 y 和 d 是同意義的,w 不再與 d 同意義,而是表示相隔多少個 7天,這與 ww 不同。假如今天是一周的第一天,至於星期幾是一周的第一天得看計算機設置和第四個參數了,那麼今天與昨天相隔 0 個 w,相隔 1 個 ww,因為今天與昨天相差不足 1 個 7天,但今天已經是另外一周了。