El punto y coma se utiliza para terminar la instrucción SQL.
Puede usar signos #
alrededor de un valor de fecha o usar el acceso (ACE, Jet, lo que sea) emitido a DATETIME
función CDATE()
. Como su nombre lo indica, DATETIME
siempre incluye un elemento de tiempo, por lo que sus valores literales deberían reflejar este hecho. El motor de SQL entiende perfectamente el formato de fecha ISO.
mejor no utilizar BETWEEN
para DATETIME
de acceso: se basa en utilizar un tipo de coma flotante y de todos modos el tiempo es un continuo;)
DATE
y TABLE
palabras reservadas en las normas SQL, ODBC y Jet 4.0 (y probablemente más allá), por lo que es mejor evitar los nombres de elementos de datos:
Sus predicados sugieren una representación abierta abierta de períodos (donde ni su fecha de inicio ni la fecha final se incluyen en el período), que es posiblemente la opción menos popular . Esto me hace preguntarme si nos referimos a utilizar la representación cerrada-abierta (donde se incluye ni su fecha de inicio, pero el plazo finalizará inmediatamente anterior a la fecha de finalización):
SELECT my_date
FROM MyTable
WHERE my_date >= #2008-09-01 00:00:00#
AND my_date < #2010-09-01 00:00:00#;
alternativa:
SELECT my_date
FROM MyTable
WHERE my_date >= CDate('2008-09-01 00:00:00')
AND my_date < CDate('2010-09-01 00:00:00');
bien ahora su trabajo, gracias –
agradable ver a la gente una vez más poner -1 en la respuesta correcta, y sin añadir un comentario para explicar por qué – smirkingman
-1. Esta forma de hacerlo depende de que el formato de fecha predeterminado sea dd/mm/aaaa. La otra respuesta usa el formato de fecha ISO. El OP sí preguntó "¿cómo lo hago?" No solo "¿por qué mi SQL devuelve la respuesta incorrecta?" – Colin