以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于一个日期表达式的错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27748)

--  作者:夕然
--  发布时间:2013/1/9 10:55:00
--  [求助]关于一个日期表达式的错误
我在查询表的条件设置如下
[过期日期] <= #" & Date.Today & "#

提示

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2012.11.29.1
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: 日期的语法错误 在查询表达式 \'[过期日期] <= #" & Date.Today & "#\' 中。
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   at Foxtable.O0l11O0ll0lOO1000Ol0.O00O1lOO()


但是,我的那个过期日期确实是日期型的

不过 ,他的值是这样获得的

e.DataRow("过期日期") = e.DataRow("登记时间").AddDays(365)

--  作者:lin_hailun
--  发布时间:2013/1/9 10:57:00
--  
 "过期日期 <= #" & Date.Today & "#"
[此贴子已经被作者于2013-1-9 10:57:20编辑过]

--  作者:夕然
--  发布时间:2013/1/9 11:03:00
--  
你的代码也不行啊

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2012.11.29.1
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: 日期的语法错误 在查询表达式 \'过期日期 <= #" & Date.Today & "#\' 中。
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   at Foxtable.O0l11O0ll0lOO1000Ol0.O00O1lOO()


并且我认为  把列名用 [] 括起来是对的

比如

[_Identify] Is Null


麻烦您再帮助看看


--  作者:lin_hailun
--  发布时间:2013/1/9 12:02:00
--  
 你的是不是sqlserver数据源?试试单引号吧。不行就具体一下你的问题。

 "过期日期 <= \'" & Date.Today & "\'"

--  作者:夕然
--  发布时间:2013/1/9 12:11:00
--  
我的是内部表
--  作者:夕然
--  发布时间:2013/1/9 12:13:00
--  
我复制出来了
Select  {会员表}.* From {会员表} Where [过期日期] <= #" & Date.Today & "#
这个提示语法错误,为什么呢

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2012.11.29.1
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: 日期的语法错误 在查询表达式 \'[过期日期] <= #" & Date.Today & "#\' 中。
[此贴子已经被作者于2013-1-9 12:13:52编辑过]

--  作者:lin_hailun
--  发布时间:2013/1/9 13:01:00
--  
 不可能这样的,远程帮你看一下,联系客服QQ
--  作者:夕然
--  发布时间:2013/1/9 13:37:00
--  
这点一定要标记
谢谢林老师
查询表的条件表达式 不能使用  变量