ACCESS日期格式显示问题 ( 积分: 50 )

  • 主题发起人 神经蛋白质
  • 开始时间

神经蛋白质

Unregistered / Unconfirmed
GUEST, unregistred user!
在ACCESS数据库里面存的日期数据是 2005/12/14 (系统关系不要更改)

ADO连接ACCESS数据库.用ADOQuery的SQL语言select查找数据.DBGrid显示数据.

请问在access数据库里面有没有一个函数能改变日期显示的格式,显示为2005-12-14.

比如象MS-SQL里面的convert
 
在ACCESS数据库里面存的日期数据是 2005/12/14 (系统关系不要更改)

ADO连接ACCESS数据库.用ADOQuery的SQL语言select查找数据.DBGrid显示数据.

请问在access数据库里面有没有一个函数能改变日期显示的格式,显示为2005-12-14.

比如象MS-SQL里面的convert
 
access中好像没有哦
不过这样可以 CStr(Year(字段))+'-'+CStr(Month(字段))+'-'+CStr(Day(字段))

为什么一定要SQL中转换呢?在ADOQuery中的字段属性 DisplayFormat设为 yyyy-mm-dd 不好么?

又或者,如果你这个字段不是日期类型而是字符串,那么可以在ADOQuery中建一个计算字段,自己转换显示
DataSet.FieldByName('计算字段').AsString:=FormatDateTime('yyyy-mm-dd',StrToDateTime(DataSet.FieldByName('要转换的字段').AsString));
 
我说了,我是用ADOQuery写SQL语言select查找数据在DBGrid里面显示查找出来的数据.所以DBGrid里面就直接显示2005/12/14 .但我希望他显示为2005-12-14.有什么好办法?
 
shortformat:='YYYY-MM-DD';

设置该字段的displayformat为'YYYY-MM-DD'
 
select format(Datetime,'yyyy-mm-dd') from 表名
select format(Datetime,'yyyy/mm/dd') from 表名
分分
 
shortformat:='YYYY-MM-DD';
 
shortformat 在哪里用?
 
不好意思,写错了
在程序开始的时候执行

shortdateformat:='YYYY-MM-DD';
 
还是不知道 shortdateformat:='YYYY-MM-DD'; 在哪里用.是写在sql语言里面还是在哪里用
 
终于搞懂了shortdateformat .
4楼的方法 select format(Datetime,'yyyy/mm/dd') from 表名.行不通.是不是有写错了?
 
我试过 Access 下
select format(Datetime,'yyyy-mm-dd') from 表名
是可以的,你试试 select format(now(),'yyyy-mm-dd') 都可以出来的

是不是你的字段是字符串类型而不是时间类型阿,改为
select format(CDate(字段),'yyyy-mm-dd') from 表名

以上说的是Access,如果是SQL Server,则
对时间字段: convert(varchar(10),字段,120)
对字符字段: convert(varchar(10),convert(smalldatetime,字段),120)
 
Data.QryInfo.SQL.Text:='select format(CDate(time),''yyyy-mm-dd'') from info';
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
950
SUNSTONE的Delphi笔记
S
S
回复
0
查看
774
SUNSTONE的Delphi笔记
S
顶部