Borrar filtros
Borrar filtros

database toolbox - sql query problems

5 visualizaciones (últimos 30 días)
Tom Hissel
Tom Hissel el 26 de Abr. de 2011
Im browsing access databases using matlab database toolbox and sql queries.
Simple queries work fine but when I want to use 'where' statements in combination with time/date columns (timestamps) I get in trouble. 'Systeemtijd' is a table in the database containing time indication in the format: 2011-02-25 16:56:00.
no problem: Time = fetch(conn, 'SELECT ALL Systeemtijd FROM "SWS_Pand OS1 GRFMET 1" ');
problematic: Time = fetch(conn, 'SELECT ALL Systeemtijd FROM "SWS_Pand OS1 GRFMET 1" WHERE Systeemtijd > {ts'2011-02-25 16:56:00'} ');
This kind of query works fine in access and in excel but for some reason the syntax is not accepted by matlab. Likely the reason is that matlab ends the query at the second ' where the other programs do not.
What is a working code/syntax to do a query like this in matlab?
Thank you
there was a typo before. I changed it.
The error message is just this one: ??? Error: File: queryoefenen.m Line: 27 Column: 99 Unexpected MATLAB expression.
It appears because matlab closes the query at the use of an apostrophe.
  2 comentarios
Oleg Komarov
Oleg Komarov el 26 de Abr. de 2011
POst the error message: http://www.mathworks.com/matlabcentral/answers/6200-tutorial-how-to-ask-a-question-on-answers
Tom Hissel
Tom Hissel el 26 de Abr. de 2011
done, didnt do that before because it doesn't give significant information.

Iniciar sesión para comentar.

Respuesta aceptada

Tom Hissel
Tom Hissel el 26 de Abr. de 2011
OK after hours of puzzling I found a syntax that does get accepted by matlab and sql :)
this one works: 'SELECT ALL Systeemtijd FROM "SWS_Pand OS1 GRFMET 10" WHERE Systeemtijd>#02/26/2011 13:36:00#'
Thanks for your responses though! cheers

Más respuestas (2)

Oleg Komarov
Oleg Komarov el 26 de Abr. de 2011
I doubt this syntax is accepted by SQL:
'SELECT ALL Systeemtijd FROM "SWS_Pand OS1 GRFMET 1" WHERE Systeemtijd > ts{'2011-02-25 16:56:00'} '
  1 comentario
Tom Hissel
Tom Hissel el 26 de Abr. de 2011
SELECT ALL Systeemtijd FROM "SWS_Pand OS1 GRFMET 1" WHERE (Systeemtijd >{ts '2011-02-25 16:56:00'})

Iniciar sesión para comentar.


Clemens
Clemens el 26 de Abr. de 2011
seems the string's not valid.
did you try replacing the apostrophes with ''(2 apostrophes) or " ?
  1 comentario
Tom Hissel
Tom Hissel el 26 de Abr. de 2011
yes. using quotation marks I get the following error:
??? Error using ==> database.fetch at 37
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Systeemtijd > ts [2011-02-25 16:56:00]}'.
Error in ==> queryoefenen at 27
Tijd = fetch(conn, 'SELECT ALL Systeemtijd FROM "SWS_Pand OS1 GRFMET 1" WHERE Systeemtijd > {ts "2011-02-25 16:56:00"} ');
Again.. syntax is not accepted.

Iniciar sesión para comentar.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by