delphi中整个栏位的计算 |
答題得分者是:pillar62
|
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
各位选进大大,不好意思,小弟又有事麻烦大家了
比如我有一sql的table,其中field1和field2的内容是类似“2005-02-01”,char型,现在我想将field1-field2以获得field3“天数”,我找遍了sql中的函数,好象没有这方面的功能,但在delphi中倒有这样的函数,我使用了如下方法:
adotable1.Active:=true;
adotable1.Edit;
ADOTable1.FieldByName('field3').asstring:=inttostr(Trunc(StrToDate('field1'))-Trunc(StrToDate('field2')));
adotable1.updatebatch; 但它只对第一条记录有效,如果遍历所有记录,速度会下降。
我想问一下,怎样才能让它对整个栏位有效?
不胜感激!
|
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
|
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
|
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
|
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
引言: 你好,不用客氣 你的欄位裡面是不是有格式有問題的資料,因為你現在的格式是2005-02-01但是只要那個欄位其中有一筆資料有問題格式不對就會有這樣個錯誤訊息,所以建議你,先在where條件裡面把可能錯誤的資料去掉!!例如where len(field1) = 10 and len(field2) = 10 and field1 is not null and feild2 is not null...試試看吧!! Pillar Wang我把我的table中只留一条记录,其它记录全部删除,不管是否加where都出现下图,如下图 但还是出现这个问题。 |
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
你好
請問一下你的資料庫應該是mssql沒錯吧!!因為這個sql語法是在mssql測試的!!嗯,有一個地方要注意!!就是select DATEDIFF(dd, cast('field2' as datetime), cast('field1' as datetime)) as field3
from table
裡面的'field2'或是'field1'都沒有加單引號喔!!
select DATEDIFF(dd, cast(field2 as datetime), cast(field1 as datetime)) as field3 Pillar Wang
------
Pillar Wang |
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
引言: 你好 請問一下你的資料庫應該是mssql沒錯吧!!因為這個sql語法是在mssql測試的!!嗯,有一個地方要注意!!就是select DATEDIFF(dd, cast('field2' as datetime), cast('field1' as datetime)) as field3 from table 裡面的'field2'或是'field1'都沒有加單引號喔!! select DATEDIFF(dd, cast(field2 as datetime), cast(field1 as datetime)) as field3 Pillar Wang再谢pillar Wang大大,果然有效! 能否再问一下,如果我不是field2-field1,而只是将field1栏位都 5天,该怎么做?小弟初学,不好意思! 發表人 - luowy651 於 2005/03/17 12:51:42 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |