读书人

delphi+ado+access 日期函数解决办法

发布时间: 2012-12-29 10:28:09 作者: rapoo

delphi+ado+access 日期函数
一直使用的sql,因为access方便,使用access2003做数据库,发现再插入时间时出现问题

insert into a (date)values('''+formatdatetime('yyyy-mm-dd',datetimepicker1.date)+''')

总是报错,大致为‘标准表达式中数据类型不匹配’,
access中该字段设置的 日期/时间 类型,求解
[解决办法]
formatdatetime 返回的是字符串

//这样试试
insert into a (date)values('+formatdatetime('yyyy-mm-dd',datetimepicker1.date)+')
[解决办法]

引用:
标准表达式中数据类型不匹配 还是这个错误

难道只有设置为文本格式?


日期字段设为文本格式吧, 不然桌面数据库的日期格式随系统设置变化, 处理起来也挺麻烦的
[解决办法]
insert into a (date) values(DateValue('''+formatdatetime('yyyy-mm-dd',datetimepicker1.date)+'''))
DateValue()是VBA函数
[解决办法]
这是你使用的数据库,字段的格式不兼容造成的。Date字段,它包含Date和Time两个值。所以,我在使用数据库时,不使用DATE字段,直接使用字符字段。这样,读取数据和写入数据时,都要进行转换。但无格式兼容问题。
[解决办法]
qry1.SQL.Text := 'insert into a(date) values(:DT)';
qry1.Parameters.ParamByName('DT').Value := now;
qry1.ExecSQL;

[解决办法]
引用:
qry1.SQL.Text := 'insert into a(date) values(:DT)';
qry1.Parameters.ParamByName('DT').Value := now;
qry1.ExecSQL;


推荐使用参数

另外如果使用文本方式传送,需要在日期的两边加上#

读书人网 >.NET

热点推荐