ASP中SQL資料庫關於日期的錯誤

時間 2023-08-28 21:19:06

1樓:黑暗族野

在sql中datediff(),d是不需要''的,你試試datediff(d,date1,date2)

我仔細看了下,錯誤不少。

1、datediff中的d不要''

2、sql中的date()函式不對,應該是getdate()

3、format 函式不對,應該是cast 或 convert ,具體用法你自己去查sql索引。

4、如果要得到天、月、年請使用day(getdate())month(getdate())year(getdate())

5、就算有format函式這句話我不知道你多加幾個"&"有什麼意思,多此一舉。

附:sql和access函式有很多不同點,希望你可以專門研究下他們的不同之處,祝你早日成功!

高分 **等asp sql acc資料 日期對比問題 資料庫中有個欄位是日期欄位 無時間

2樓:天遠網路科技

描述 返回兩個日期之間的時間間隔。

語法 datediff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

datediff 函式的語法有以下引數:

引數 描述。

interval 必選。string expression 表示用於計算 date1 和 date2 之間的時間間隔。有關數值,請參閱“設定”部分。

date1, date2 必選。日期表示式。用於計算的兩個日期。

firstdayofweek 可選。指定星期中第一天的常數。如果沒有指定,則預設為星期日。有關數值,請參閱“設定”部分。

firstweekofyear 可選。指定一年中第一周的常數。如果沒有指定,則預設為 1 月 1 日所在的星期。有關數值,請參閱“設定”部分。

設定 interval 引數可以有以下值:

設定 描述。

yyyy 年。

q 季度。n 月y 一年的日數。

d 日w 一週的日數。

ww 周。h 小時。

m 分鐘s 秒。

3樓:網友

set rs=""

select * from products where datediff('d',end_date,date())0 order by date desc",conn,1,1

請使用這樣的格式寫出 謝謝!!!

sql2008資料庫datetime日期時間,asp**呼叫無法顯示出時分秒,只顯示了年月日

4樓:田響建站

檢視一下你的資料庫的實際格式是什麼樣的。

寫入的格式與電腦或伺服器設定的格式是一致的如果寫入的格式與你要求的格式不符。

就只能在引用時用替換的方式來修正。

asp中sql用法!日期格式不同 如何查詢指定範圍資料

5樓:網友

首先你應該把欄位的日期型別改為日期時間型,如果你目前為字串的話可以採用replace()函式把/轉換為“-”橫線,然後再更改欄位型別。

但是讓我迷惑的是,怎麼回出現2014-1-1和2015/1/1這兩種格式呢,我一般用2015-01-01這種格式,當然了2015-1-1和2015-01-01是相等的,2015/1/1和2015/01/01是相等的,理論上只要把/替換成-號就可以進行欄位型別的更改了,第一個sql語句:update 表名 set 我是時間欄位=replace(我是時間欄位,'/把所有/字串全部替換為-.

第二個sql語句:update 表名 set 我是時間欄位=replace(我是時間欄位,' 替換所有空格為空,這一句可以不加,只要你能欄位型別更改成功。

備註:現在討論下出現兩種格式不統一的原因:資料庫欄位格式本來就設定為2015/1/1這種格式(2015/1/1這種格式在access中有人使用),但是2015-1-1卻可以正確寫入,既然都是日期時間型的話自然可以用sql直接篩選啊,但是出現資料不準可能是設定錯誤,正確格式應該為2015-1-1 00:

00:00,也就是說必須帶時分秒的。預設sql語句:

select * from 表名 where 我是時間欄位》='2015-1-1' and 我是時間欄位<='2015-1-31',這條sql語句的時間範圍為查詢2015-1-1 00:00:00 到2015-1-31 00:

00:00,所以應該sql語句應該是:select * from 表名 where 我是時間欄位》='2015-1-1 00:

00:00' and 我是時間欄位<='2015-1-31 23:59:

59',你除錯下看時間段停留在哪?

如果sql語句不能用逗號的號可以改成#(access有這種毛病)

6樓:sql的藝術

1、問題分析。

日期格式不一致,格式大致應該是這樣兩種:2000-1-1和2000/1/1

這主要是由於作業系統不同,造成了日期的分隔符不一致。

2、解決問題。

可以將這些日期格式統一格式化後進行查詢。

例如:select * from 表名 where cast(日期格式不一致的列名稱 as datetime) between '20001-1' and '2001-12-31 '

上面的語句是查詢在'20001-1' 和 '2001-12-31 '之間的資料。

asp中查詢日期時間記錄的問題。

7樓:匿名使用者

datediff函式。

select * from 表名稱 where datediff(day, 日期欄位, '2008/8/12') 0

8樓:網海1書生

如果是access資料庫(假定比對資料放在變數d中,格式為"2008-8-12"):

sql = select * from 表名 where datediff('d',欄位名,#" &d & #

或sql = select * from 表名 where format(欄位名,'yyyymmdd')=format(#" &d & #,'yyyymmdd')"

或sql = select * from 表名 where 欄位名-#" &d & #

asp怎麼吧當前日期寫入sql資料庫中

9樓:匿名使用者

你在sql語句裡獲取時間就不會有那問題了,如:

dim sql

sql = insert into tb1(date) values(date())

10樓:田響建站

rs("t")=now() 如果t為日期欄位的話。

為什麼在asp中向mysql資料庫插入日期時,報錯

11樓:匿名使用者

我覺得:

1.可能日期的不能單引號!

2.日期的格式(編碼)問題!

把格式轉換一下存進去!

可以參考下面的參考資料!

12樓:匿名使用者

測試是日期欄位報錯麼?你mysql日期格式是什麼樣的?

13樓:匿名使用者

編碼不一致,mysql資料庫的編碼是不是gbk的?

asp 中sql語句日期比較問題

14樓:匿名使用者

sql="select * from games where game_date>'"dates&"'

改寫成sql="select * from games where game_date>"+dates&"'

你按這個寫試試。

關於sql資料庫的問題

沒有報錯嗎?改成 建議 最好在 rs.open 以前把 sql 列印出來,方法是 response.write sql 再用 pl sql 進行驗證,如果不行則是 sql 語句出錯了 rs riqi riqi 這條語句,你上面定義的變數是shouliriqi,應該是rs riqi shouliriq...

資料庫的SQL,什麼是資料庫 微軟的SQL又是什麼

public sqlconn as adodb.connection 定義一個資料庫連線sqlconn on error goto handler 發生錯誤時跳轉到 handler標籤 set sqlconn new adodb.connection 例項化sqlconn sqlconn.curso...

ASP連結資料庫查詢

不一樣啊 第一個 變數的值 menuwhere 這個直接就是一個字串例如 menuwhere china 你的第一句結果就是 select from design where designwhere china order by id 但是 第二句還是select from design where...