SOS: Error del formato de fecha en sentencia SQL

23/08/2006 - 15:36 por Aura | Informe spam
Hola !

Tengo este codigo:

Dim data
data = Trim(Request.Form("fecha"))
sSQL = "SELECT * FROM obra WHERE fecha='#"&fecha&"#'"

Y el error es el siguiente:
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta
operador) en la expresión de consulta 'fecha='#10/10/2006#''.

En la tabla el campo fecha es Fecha/Hora -> Fecha Corta (es decir,
dd/mm/aaaa). Y no hay manera de quitar el error poniendo de distintas maneras
las comillas simples.

Que es lo que tengo mal ??

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Manuel Vera
23/08/2006 - 18:09 | Informe spam
Personalmente te sugiero que la fecha la pases en el formato:
"aaaa/mm/dd"
o
"aaaa-mm-dd"

y le quites los numerales #

Salu2
MV

"Aura" escribió en el mensaje
news:
Hola !

Tengo este codigo:

Dim data
data = Trim(Request.Form("fecha"))
sSQL = "SELECT * FROM obra WHERE fecha='#"&fecha&"#'"

Y el error es el siguiente:
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta
operador) en la expresión de consulta 'fecha='#10/10/2006#''.

En la tabla el campo fecha es Fecha/Hora -> Fecha Corta (es decir,
dd/mm/aaaa). Y no hay manera de quitar el error poniendo de distintas
maneras
las comillas simples.

Que es lo que tengo mal ??

Muchas gracias
Respuesta Responder a este mensaje
#2 Aura
24/08/2006 - 17:16 | Informe spam
Hola Manuel,

No puedo cambiar el formato ya que es necesario que salga en dd/mm/aaaa, y
he quitado los # y me sale el mismo error

Que puedo hacer ?

"Manuel Vera" wrote:

Personalmente te sugiero que la fecha la pases en el formato:
"aaaa/mm/dd"
o
"aaaa-mm-dd"

y le quites los numerales #

Salu2
MV

"Aura" escribió en el mensaje
news:
> Hola !
>
> Tengo este codigo:
>
> Dim data
> data = Trim(Request.Form("fecha"))
> sSQL = "SELECT * FROM obra WHERE fecha='#"&fecha&"#'"
>
> Y el error es el siguiente:
> Tipo de error:
> Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
> [Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta
> operador) en la expresión de consulta 'fecha='#10/10/2006#''.
>
> En la tabla el campo fecha es Fecha/Hora -> Fecha Corta (es decir,
> dd/mm/aaaa). Y no hay manera de quitar el error poniendo de distintas
> maneras
> las comillas simples.
>
> Que es lo que tengo mal ??
>
> Muchas gracias



Respuesta Responder a este mensaje
#3 Manuel Vera
24/08/2006 - 19:52 | Informe spam
Ok. No te preocupes en como VES tu el valor de tu campo fecha. En Access el
valor se graba como un numero del tipo DOUBLE con muchos decimales. La parte
entera de ese numero representa la fecha como tal, mientras que la parte
decimal representa el tiempo u hora.
Luego, tu VES ese valor segun la configuracion del equipo donde reside en
Access. Pero no se graba como tu lo ves.

Entonces, tu puedes filtrar registros segun un campo fecha de las siguientes
formas:

'mayores al año 2000 + o -, en la hora 0
select * from tabla where fecha > 36500
'mayores al año 2000 + o -, a una hora mayor a 0
select * from tabla where fecha > 36500.98765
select * from tabla where fecha > 'dd/mm/yyyy'
select * from tabla where fecha > #dd/mm/yyyy#
select * from tabla where fecha > 'yyyy-mm-dd'
select * from tabla where fecha > 'yyyy/mm/dd'
select * from tabla where fecha > 'yyyymmdd'
OJO con las apostrofes y numerales ( ' y # )

Todos esos deberan ser formatos validos en Access.
Sin embargo, vas a tener problemas con el asunto del DIA y el MES, segun el
lenguaje (ingles, español u otro) que este controlando a Access (o Windows)
y/o segun la configuracion regional de tu equipo (servidor). Por alli van
las flechas.
Yo personalmente te aconsejo una de las variantes que coloca primero el año
y segundo el mes.

Has la prueba para que veas que te servira como te digo.

Salu2
MV

"Aura" escribió en el mensaje
news:
Hola Manuel,

No puedo cambiar el formato ya que es necesario que salga en dd/mm/aaaa, y
he quitado los # y me sale el mismo error

Que puedo hacer ?

"Manuel Vera" wrote:

Personalmente te sugiero que la fecha la pases en el formato:
"aaaa/mm/dd"
o
"aaaa-mm-dd"

y le quites los numerales #

Salu2
MV

"Aura" escribió en el mensaje
news:
> Hola !
>
> Tengo este codigo:
>
> Dim data
> data = Trim(Request.Form("fecha"))
> sSQL = "SELECT * FROM obra WHERE fecha='#"&fecha&"#'"
>
> Y el error es el siguiente:
> Tipo de error:
> Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
> [Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta
> operador) en la expresión de consulta 'fecha='#10/10/2006#''.
>
> En la tabla el campo fecha es Fecha/Hora -> Fecha Corta (es decir,
> dd/mm/aaaa). Y no hay manera de quitar el error poniendo de distintas
> maneras
> las comillas simples.
>
> Que es lo que tengo mal ??
>
> Muchas gracias



Respuesta Responder a este mensaje
#4 Aura
25/08/2006 - 08:47 | Informe spam
Muchas gracias Manuel !

Ya lo he solucionado haciendo prueba y error. Y me he fijado que cuando
recoges la variable para la fecha no puedes utilizar la funcion Trim()
Ese era el fallo

Un Saludo !

"Manuel Vera" wrote:

Ok. No te preocupes en como VES tu el valor de tu campo fecha. En Access el
valor se graba como un numero del tipo DOUBLE con muchos decimales. La parte
entera de ese numero representa la fecha como tal, mientras que la parte
decimal representa el tiempo u hora.
Luego, tu VES ese valor segun la configuracion del equipo donde reside en
Access. Pero no se graba como tu lo ves.

Entonces, tu puedes filtrar registros segun un campo fecha de las siguientes
formas:

'mayores al año 2000 + o -, en la hora 0
select * from tabla where fecha > 36500
'mayores al año 2000 + o -, a una hora mayor a 0
select * from tabla where fecha > 36500.98765
select * from tabla where fecha > 'dd/mm/yyyy'
select * from tabla where fecha > #dd/mm/yyyy#
select * from tabla where fecha > 'yyyy-mm-dd'
select * from tabla where fecha > 'yyyy/mm/dd'
select * from tabla where fecha > 'yyyymmdd'
OJO con las apostrofes y numerales ( ' y # )

Todos esos deberan ser formatos validos en Access.
Sin embargo, vas a tener problemas con el asunto del DIA y el MES, segun el
lenguaje (ingles, español u otro) que este controlando a Access (o Windows)
y/o segun la configuracion regional de tu equipo (servidor). Por alli van
las flechas.
Yo personalmente te aconsejo una de las variantes que coloca primero el año
y segundo el mes.

Has la prueba para que veas que te servira como te digo.

Salu2
MV

"Aura" escribió en el mensaje
news:
> Hola Manuel,
>
> No puedo cambiar el formato ya que es necesario que salga en dd/mm/aaaa, y
> he quitado los # y me sale el mismo error
>
> Que puedo hacer ?
>
> "Manuel Vera" wrote:
>
>> Personalmente te sugiero que la fecha la pases en el formato:
>> "aaaa/mm/dd"
>> o
>> "aaaa-mm-dd"
>>
>> y le quites los numerales #
>>
>> Salu2
>> MV
>>
>> "Aura" escribió en el mensaje
>> news:
>> > Hola !
>> >
>> > Tengo este codigo:
>> >
>> > Dim data
>> > data = Trim(Request.Form("fecha"))
>> > sSQL = "SELECT * FROM obra WHERE fecha='#"&fecha&"#'"
>> >
>> > Y el error es el siguiente:
>> > Tipo de error:
>> > Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
>> > [Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta
>> > operador) en la expresión de consulta 'fecha='#10/10/2006#''.
>> >
>> > En la tabla el campo fecha es Fecha/Hora -> Fecha Corta (es decir,
>> > dd/mm/aaaa). Y no hay manera de quitar el error poniendo de distintas
>> > maneras
>> > las comillas simples.
>> >
>> > Que es lo que tengo mal ??
>> >
>> > Muchas gracias
>>
>>
>>




Respuesta Responder a este mensaje
#5 Ricardo A.M.
27/08/2006 - 06:56 | Informe spam
Hola Aura,

En realidad tu problema esta en:

WHERE fecha = '#" & fecha & "#'"

debes eliminar el apóstrofe y solamente manejar el # de esta manera:

WHERE fecha = #" & fecha & "#"

Algo más, la fecha en los WHERE ya sean de SELECT, UPDATE, INSERT o DELETE
debe de estar en formato inglés, o sea: mm/dd/yyyy

Como última observación y creo que eso te causo confusion, en SQL Server
manejas el apóstrofe ' como limitador de la fecha y en Access es el #



Aura wrote:

Hola !

Tengo este codigo:

Dim data
data = Trim(Request.Form("fecha"))
sSQL = "SELECT * FROM obra WHERE fecha='#"&fecha&"#'"

Y el error es el siguiente:
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta
operador) en la expresión de consulta 'fecha='#10/10/2006#''.

En la tabla el campo fecha es Fecha/Hora -> Fecha Corta (es decir,
dd/mm/aaaa). Y no hay manera de quitar el error poniendo de distintas
maneras las comillas simples.

Que es lo que tengo mal ??

Muchas gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida