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

  • 主题发起人 主题发起人 娃娃
  • 开始时间 开始时间
ACCESS数据库有没有日期转换为字符串的函数?

如果有,就把 "入仓日期 "转换成字符串格式的,去掉时间部分,后面的参数也是字符串的就行了
 
to huntor
你说的方法我以前就经常用,日期字段保存为“20021020”,也可行。
不过我想能找到解决我现在这个问题的办法。不好意思。

to 小小K
你说的方法可以,不过就如同上面SanDao兄说的一样,这样也不是根
本的解决之道。

to 无疯无禄
我照你说的那样做了,不过还是有时间段。
 
你是想查日期还是时间
把该字段设置成短时间,不行吗?
 
设置成短日期只是在ACCESS中查看时是短日期格式的,
但是在Delphi的DBGrid中查看不行。

我看现在的问题是如何让ACCESS保存数据时就保存类似2002-10-20格式的数据。
 
首先说明,日期型的数据不是2002-12-20这样格式存放的,而是浮点型。
其次,我的意思并不是要把日期型改成字符串型的,而是在取出日期型数据后,转换成字符串型的。

很抱歉,我不熟悉ACCESS的数据库函数,类似功能若用ORACLE数据库,则可写成:
select * from 表名 where to_char(入仓日期,''yyyy-mm-dd'')=:indate
parameters.parambyname('indate').values := format(Date,.....); //使用DELPHI提供的函数

其中TO_CHAR()是数据库提供的 日期->字符串转换函数。

 
也不知道是不是我这里的机器有问题还是怎么回事。

我试了大家说的#号,都不行,加'号的话提示数据类型不对,不加的
话又查不到数据。

最后我试了一下无疯无禄说的DateValues()

select * from InStorageMaster where DateValue(入仓日期)=:indate
parameters.parambyname('indate') := Date;

反倒可以了。不知道是那里出了错,不过已经解决了问题,就散分吧。
 
不好意思,现在才看到。我刚才试了一下,好象还是不能解决。

不过昨天晚上我已经用笨办法试了一个遍历,做了点优化,还算有效,基本上10’000-
30’000条记录/秒,还可以。这些分我还给你留着,如果到初六,不管你能不能帮我找
到合适的算法,这些分在别人给出算法之前都算你的。呵呵,算大家交流了。

忘了,新年快乐!我这儿没鞭炮放。
 
后退
顶部