ACCESS数据库的日期字段问题(50分)

  • 主题发起人 主题发起人 娃娃
  • 开始时间 开始时间

娃娃

Unregistered / Unconfirmed
GUEST, unregistred user!
我设计了一个有日期字段的ACCESS数据库,但是
用语句

select * from 表名 where 入仓日期=:indate
parameters.parambyname('indate').values := Date;

ADO连接,win2000,delphi6
 
parameters.parambyname('indate').asDateTime 或者
parameters.parambyname('indate').asDate

记不清了,试一下
 
我用的是ADO连接啊,ADO的参数,可以用ASXXXX吗?
 
Parameters.parambyname('indate').Value := Date;
// values
 
不知你在问什么..
 
"select * from 表名 where 入仓日期=now()"
不用date()
当然“入仓日期”要是长日期型。
 
select * from 表名 where 入仓日期=IDate
parameters.parambyname('indate').AsDate:= Date;
 
再次声明一下,好象ADO没有ASXXXXX这类的说法吧。

NOW()返回的是当时的长日期,如果后面的时间段不同,不是查询不到?

有没有朋友再给点回答的?
 
娃娃:你只是把 value 误写成 values 而已,其他完全正确
 
adoquery1.sql.add(format(
'select * from 表名 where 入仓日期=#%s#;',
[DateToStr(Date)]));
 
是啊!
我今天也刚请教了别人,关于Access的日期问题比较特别,比如:
ADOQuery1.SQL.Text:='select * from 字段名:=2001-1-2'
看来是没问题的可实际上是有问题的,应写成如下:
ADOQuery1.SQL.Text:='select * from 字段名:=#2001-1-2#'

借花献佛,见笑见笑!
 
to skymean
改成#和我的一样,可以通过SQL检查,但是查不到数据。

我看了一下,我的库里面保存的数据是2002-10-20 13:10:21

还有没有朋友帮帮手啊
 
有没有什么办法能让保存的数据是2002-10-20呢,我不想要后面的时间段。

小弟实在是没能用过ACCESS做后端,还请各位帮帮手啊。
 
between '2002-10-20 00:00:00' and '2002-10-20 23:59:59'
 
如果是ACCESS,加上#
 
怎么都是说要加上#呢,我试过了还是老样子啊。

能不能说详细一点呢,谢谢了
 
例如,在英国将 May 10, 1996 写成 10/5/96,而在美国却写成 5/10/96。必须确保将日期文字与数字符号 (#) 括起来,如下例所示。

为在英国的数据库中查找日期为 May 10, 1996 的记录,必须使用下列 SQL 语句:

SELECT *

FROM Orders

WHERE ShippedDate = #5/10/96#;


也可使用 DateValue 函数,这是 Microsoft Windows 建立的国际标准设置值。例如,在美国这样使用此代码:

SELECT *

FROM Orders

WHERE ShippedDate = DateValue('5/10/96');


而在英国这样使用此代码:

SELECT *

FROM Orders

WHERE ShippedDate = DateValue('10/5/96');

这是Access帮助上的一段,在Access的Jet SQL 参考上的 Select 下的 Where 子句说明中的一段
你可以看一下帮助
 
试试这个:(注意是两mao号)
'select * from tableA where datafields between #1979-07-28 00::00::00# and #1979-07-28 23::59::59#';
 
Insert into Table (Date) Values ('2002-01-01')

日期格式和你的区域设置中的格式要一样
 
select * from 表名 where 入仓日期=:d1
Parameters.ParamByName('d1').Value:=edtDate.Date;

我想你是为什么错了,你在ACCESS里存日期时,把时间也一起存进去了,
这样用:=就不行了,你可以试着用这个看看有没有找出记录来,

select * from 表名 where 入仓日期>=:d2
Parameters.ParamByName('d2').Value:=edtDate.Date;

试试先,不行再说

 
后退
顶部