“爲 datediff 指定了(le)無效的(de)參數 1”錯誤的(de)原因
access中DateDiff 的(de)寫法和(hé)MSSQL中的(de)寫法是有區(qū)别的(de),不注意區(qū)别就會提示:“爲 datediff 指定了(le)無效的(de)參數 1”錯誤
以下(xià)是access數據庫的(de)DateDiff的(de)寫法:
sql = "select * from table where DateDiff('d',時(shí)間變量,now())=0"
而MSSQL中DateDiff的(de)寫法是這(zhè)樣的(de):
sql = "select * from table where DateDiff(d,時(shí)間變量,getdate())=0"
注意兩者的(de)區(qū)别:DateDiff('d',ymd,date()) 和(hé) (d,ymd,getdate())
mssql 時(shí)間函請用(yòng)getdate(),而access中的(de)時(shí)候函數用(yòng)now()
獲取當天文章(zhāng)數,access中的(de)“d”用(yòng)單引号,而mssql中不用(yòng)單引号,否則會出錯。
DateDiff 語法及實例
DateDiff()函數:返回兩個(gè)日期之間的(de)差值
表達式 DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]])
timeinterval 表示相隔時(shí)間的(de)類型,代碼爲:
yyyy 年
q 季
m 月(yuè)
y 一年的(de)日數
d 日
w 一周的(de)日數
ww 周
h 時(shí)
n 分(fēn)鐘(zhōng)
s 秒
實例:
<%starttime = "2009-9-1"
response.write "從現在到"&starttime&"有:" & DateDiff('d',starttime,now())&"天了(le)"%>
返回結果: 從現在到2009-9-1已有XX天了(le).
該函數在access中可(kě)用(yòng),mssql中則要稍做(zuò)修改:DateDiff(d,starttime,getdate()),而該函數在oracle中不可(kě)用(yòng)
------------------------------------------------------------
select datediff(''d'','2009-01-01','2003-09-02')返回的(de)是1;
select datediff(''d'','2009-01-02','2003-09-01')返回的(de)是-1;
可(kě)見datediff返回的(de)是date2和(hé)date1之間在給定參數timeinterval下(xià)的(de)差值