2个问题请教...(100分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
1.delphi如何利用VC的CTime类型? CTime保存的是从1970-1-1开始的秒数,
如何用delphi转化成TDatetime类型? 我记得有现成的函数,现在找不到了.
2.SQL语句中如何之判断date,不管time. 比如access的时间类型是Datetime,
包括时间部分,现在我想写如下SQL语句:
var dat:tdatetime
begin
tqe.sql.add('select * from table where date=:dt');
tqe.sql.parambyname('dt').asdatetime:=dat;
在这里,我只想比较是否同一天,不管time如何,怎样比较?

每个问题50份.
 
2、
tqe.sql.add('select * from table where (date>:dt1)and(data<:dt2)');
tqe.sql.parambyname('dt1').asdatetime:=dat1;
tqe.sql.parambyname('dt2').asdatetime:=dat2;

 
dat1,dat2分别是什么呢?
 
1.呵呵, 参考一下文件的datetime, 其中的转换函数就是, 没时间查:-)
2.可以用dt1+1天>dt>dt1-1秒来判断.
 
2.
tqe.sql.add('select * from table');
tqe.sql.add('where datepart(year,date)=:yy and');
tqe.sql.add(' datepart(month,date)=:mm and');
tqe.sql.add(' datepart(day,date)=:dd');
yy,mm,dd分别为年月日
 
to 小天: Access的SQL语句支持"datepart"吗?
to cytown: 如何给TDatetime类型加1秒呢?
 
呀?好象不支持耶
 

1.15972216008231E-5
就行了。
 
amo: 什么意思? 说详细点,拜托!
 
tqe.sql.add('select * from table where convert(char(10),date,102)=:dt');
或者
tqe.sql.add('select * from table where CAST(date as char(10))=:dt');
tqe.sql.parambyname('dt').asString:=DateToStr(dat);
 
convert和case函数access的sql支持吗?
 
我以前也碰到这类问题,有一个可将日期时间型转换为yyyy-mm-dd型式的字符串
的函数,可以一用。
 
程云:可是我要在sql语句里面用啊!
 
面条的方法可以试试看
例如,我想查 1999.10.30的数据,不管到底是几点几分积秒
参数 d1=1999.10.29 11:59:59
d2=1999.10.30 11:59:59
好像用 between就可以
where date between d1 and d2
不行的话
试试看
where date>d1 and date<d2
 
没用过access,但是CONVERT,CAST在SQL Server可以用是没问题的.
CAST在InterBase中也肯定能用.
 
因为在DELPHI 中,DATETIME型=DOUBLE型
所以你可以在ACCESS中定义一个DOUBLE型字段
来储存日期和时间:
写入:Table1.fieldByName('mydate').asfloat:=date;//只存日期
Table1.fieldByName('mydate').asfloat:=now;//存日期和时间
读出:var
d:Tdatetime;
begin
d:=Table1.fieldByName('mydate').Tdatetime;
end;

检索: select * from yourtable
where (mydate>:theDate)and(mydate<:thedate+1)

Query1.Params[0].asInteger := trunc(要检索的Tdatetime型变量)
 
抱歉面条,不能更改数据库结构.
 
CTime如何转换到TDatetime ?????
 

Similar threads

后退
顶部