Matlab:数据库。重写SQL
这是我选择查询的代码<代码>从TableName中选择*,其中(DateField=Date) 但它不起作用 这个查询有什么问题Matlab:数据库。重写SQL,sql,database,matlab,Sql,Database,Matlab,这是我选择查询的代码从TableName中选择*,其中(DateField=Date) 但它不起作用 这个查询有什么问题 DateField具有类型adDate。 Date格式为dd.mm.yyyy p、 s: 这是以db为单位的表格: DBTable.Name = "MyTable" DBTable.Columns.Append "StrField", adVarWChar, 160 DBTable.Columns.Append "DoubleField", adDouble, 40 DBTa
DateField
具有类型adDate
。
Date
格式为dd.mm.yyyy
p、 s:
这是以db为单位的表格:
DBTable.Name = "MyTable"
DBTable.Columns.Append "StrField", adVarWChar, 160
DBTable.Columns.Append "DoubleField", adDouble, 40
DBTable.Columns.Append "IntField", adInteger
DBTable.Columns.Append "CurField", adCurrency
DBTable.Columns.Append "Today", adDate
DateField='Today'
。(在matlab
code中)
我试图写这样的东西:
sql = ['SELECT * FROM ' TableName ];
sql = [sql ' WHERE (' DateField ' = ''' Date ''');' ];
它也不起作用:((这里
Date='2010-12-31 00:00:00.0'
,DateField='Today'
)如果您发布实际错误消息,它会有所帮助。不过,在这种情况下,我认为一个问题是日期比较。您需要在“Date”周围加引号。尝试:
对于第二行SQL。什么是不起作用的?因为它返回0,但不是大量的行。传统问题:它使用SQL的mysql方言,而不是mssql?DateField的类型为adDate没有意义,DateField肯定应该是一个包含DB表中列名的字符串吗?你能发布表模式吗。表的哪些列(在TableName中)has?@Dan ok,将数据库信息添加到questionnot中,它不起作用,原因是
Date
有格式dd.mm.yyyy
和DateField
是adDate
。那么,如何将Date
更改为格式yyyyy-mm-dd hh:mm:ss.ms
?使用matlab函数datenum
和datestr
datefields应该是一个列名而不是日期,因此不应该在其周围加引号。否则,where条件将比较两个常量。
sql = ['SELECT * FROM ' TableName ];
sql = [sql ' WHERE (' DateField ' = ''' Date ''');' ];
sql = [sql ' WHERE (' DateField ' = ''' Date ''')'];