網站系統使用ACCESS數據庫時,查詢時怎么比較日期和時間呢?為什么常常比較出來卻是錯誤的呢?比如早的日期比遲的日期大?
在ASP中先做一個小測試,就是比較兩個日期,代碼如下:
<%="2007-2-1" > "2007-10-01"%>
結果顯示為:True
奇怪了,為什么大日期還小呢?把日期的雙引號去掉,還是返回:True
那是怎么回事呢?原來是單純時間或用雙引號括起來,在ASP中不代表時間,時間需要用兩個井號(#)括起來,如下:
<%=#2007-2-1# > #2007-10-01#%>
這回就返回False了,證明時間比較已經正確。
所以在ASP中需要用井號括起來。ASP還有其他日期函數用來做比較的,那就是:DateDiff,語法如下:
DateDiff( 間隔字符, 日期1, 日期2 [,firstdayofweek[, firstweekofyear]])
一般使用 DateDiff( 間隔字符, 日期1, 日期2) 就足夠了。
解釋一下:此函數返回間隔的日期或時間,返回的是年、月、日就要設置間隔字符了,比如間隔字符為:"yyyy" 就表示比較年份, "d" 比較日期,"m" 比較月份,如果日期1晚于日期1,那么會返回負數。
舉個例子:
<%=DateDiff( "d", #2008-1-10#, #2008-1-2#)%>
結果是:-8
ACCESS查詢中怎么寫日期比較的SQL語句?
1、首先在設計ACCESS數據表時,日期字段必須為:日期/時間,如果字段類型為字符等,日期比較時會不正確。
2、SQL語句例子(查找比指定日期后的記錄):
代碼一
select * from 表名 where DateDiff( "d", 日期字段列名, #指定日期#) <= 0
代碼二
select * from 表名 where 日期字段列名>#指定日期#
注意指定日期兩邊要用井號括起來的。