小问题:Paradox的SQL语句。

时间:2022-04-23 14:57:37
Select * from account where workdate='2002-09-20'
为什么在ADO连到PARADOX数据库不能通过,但对于SQL SERVER(表结构与PARADOX相同)却能通过。
在DATABASE DESKTOP中,这样的查询语句应该怎么写?

14 个解决方案

#1


Select * from account where workdate='09/20/2002'

paradox的日期格式是:“mm/dd/yyyy”

#2


OK,改成MM/DD/YYYY后,通过,但要怎样才能用回YYYY-MM-DD格式呢?

#3


//参考FormatDateTime()函数
//参考TDataSet.FieldByName()方法
//参考TField.AsDateTime属性

Caption := FormatDateTime('yyyy-mm-dd', Date);

#4


前不久我做的一个工资管理小程序就遇过此问题,现在就拿出来大家共享了。必须用参数的形式,否则出错!如下方法,保你OK!。

select * from account where workdate=:workdate

dm.qrQuery.paramByName('workdate').asDate:=strToDate('2002-09-            20');  
//当然用控件也是一样,

dm.qrQuery.paramByName('workdate').asDate:=TDateTimePicket.Date;

#5


如果我要把2002-09-24转成09/24/2002怎么转?
用:
Caption := FormatDateTime('MM-dd-yyyy', Date)转出来的是:09-24-2000,不是09/24/2002呀,这个"/"要怎么才能出来呀

#6


错了,改正:
如果我要把2002-09-24转成09/24/2002怎么转?
用:
Caption := FormatDateTime('MM/dd/yyyy', Date)转出来的是:09-24-2000,不是09/24/2002呀,这个"/"要怎么才能出来呀

#7


Caption := FormatDateTime('MM"/"dd"/"yyyy', Date)

#8


各位,我是用ADO连PARADOX,日期格式现在是对了,但还是出现:[Microsoft][ODBC Paradox Dirver]标准表达式中数据类型不匹配。
要怎么解决呀?

#9


来晚了。

#10


你试过我那个方法了吗?
  根本不用进行格式转换。也不会出现数据类型不匹配的情况。

#11


to haoqingqlm:
用参数来处理确实比较方便。
特别是使用其他数据库是也不用修改什么代码。
但,参数执行需要Delphi在进行解析,这样执行速度会下降。
当然最主要的是调试SQL语句的时候就不方便了!
将SQL语句和Delphi环境分开来调试这样就减少了复杂度。
无论如何,解决问题先。

嘻嘻嘻 个人观点,仅供参考 嘻嘻嘻嘻

#12


to dgxum: 检查一下的设置的路径是否正确?
//参考如下代码
dm.qrQuery.DatabaseName := 'D:\MySoft\Database\';

#13


各位老大,我是用ADO的QUERY呀,最简单的:
select workdate from ACCOUNT where workdate=2002-09-24(其实这天有数据的,为什么查不出来?)

#14


TO:haoqingqlm(木头) 
我用ADO控件,如何用参数?

#1


Select * from account where workdate='09/20/2002'

paradox的日期格式是:“mm/dd/yyyy”

#2


OK,改成MM/DD/YYYY后,通过,但要怎样才能用回YYYY-MM-DD格式呢?

#3


//参考FormatDateTime()函数
//参考TDataSet.FieldByName()方法
//参考TField.AsDateTime属性

Caption := FormatDateTime('yyyy-mm-dd', Date);

#4


前不久我做的一个工资管理小程序就遇过此问题,现在就拿出来大家共享了。必须用参数的形式,否则出错!如下方法,保你OK!。

select * from account where workdate=:workdate

dm.qrQuery.paramByName('workdate').asDate:=strToDate('2002-09-            20');  
//当然用控件也是一样,

dm.qrQuery.paramByName('workdate').asDate:=TDateTimePicket.Date;

#5


如果我要把2002-09-24转成09/24/2002怎么转?
用:
Caption := FormatDateTime('MM-dd-yyyy', Date)转出来的是:09-24-2000,不是09/24/2002呀,这个"/"要怎么才能出来呀

#6


错了,改正:
如果我要把2002-09-24转成09/24/2002怎么转?
用:
Caption := FormatDateTime('MM/dd/yyyy', Date)转出来的是:09-24-2000,不是09/24/2002呀,这个"/"要怎么才能出来呀

#7


Caption := FormatDateTime('MM"/"dd"/"yyyy', Date)

#8


各位,我是用ADO连PARADOX,日期格式现在是对了,但还是出现:[Microsoft][ODBC Paradox Dirver]标准表达式中数据类型不匹配。
要怎么解决呀?

#9


来晚了。

#10


你试过我那个方法了吗?
  根本不用进行格式转换。也不会出现数据类型不匹配的情况。

#11


to haoqingqlm:
用参数来处理确实比较方便。
特别是使用其他数据库是也不用修改什么代码。
但,参数执行需要Delphi在进行解析,这样执行速度会下降。
当然最主要的是调试SQL语句的时候就不方便了!
将SQL语句和Delphi环境分开来调试这样就减少了复杂度。
无论如何,解决问题先。

嘻嘻嘻 个人观点,仅供参考 嘻嘻嘻嘻

#12


to dgxum: 检查一下的设置的路径是否正确?
//参考如下代码
dm.qrQuery.DatabaseName := 'D:\MySoft\Database\';

#13


各位老大,我是用ADO的QUERY呀,最简单的:
select workdate from ACCOUNT where workdate=2002-09-24(其实这天有数据的,为什么查不出来?)

#14


TO:haoqingqlm(木头) 
我用ADO控件,如何用参数?