Visual Basic - CONSULTA SQL DE UNA FECHA PLEASE

Life is soft - evento anual de software empresarial
 
Vista:

CONSULTA SQL DE UNA FECHA PLEASE

Publicado por EDGAR (193 intervenciones) el 11/01/2005 16:35:05
Hola colega, tengo una gran duda en mi instruccion sql, ya que realizo varias consultas que me devuelve una serie de registros los cuales reflejo en un msflexgrid. Tengo una consulta que de acuerdo a dos fechas, me localiza los registros y me los muestra, por ejemplo todo lo comprendido desde 01/01/2000 hasta 31/12/2000. La instruccion que manejo es la siguiente:

Fec1 = Format(CDate(MKBfec1.Text), "dd/mm/yyyy")
Fec2 = Format(CDate(MKBfec2.Text), "dd/mm/yyyy")
SQL = "SELECT nacionalidad,cedula1,priape,segape,prinom,segnom,fecnac,articulo1,codobj,coddes,fecdes,lote,fectras,trans FROM ceobj WHERE lote between #" & Fec1 & "# AND #" & Fec2 & "# ORDER BY lote"
Data1.RecordSource = SQL
Data1.Refresh

Pero necesito ahora realizar una consulta teniendo nada mas una fecha, como por ejemplo que me consiga todos los registros que son de fecha 15/06/2000, elabore mi instruccion pero no funciona:

Fec1 = Format(CDate(MKBfec1.Text), "dd/mm/yyyy")
SQL = "SELECT nacionalidad,cedula1,priape,segape,prinom,segnom,fecnac,articulo1,codobj,coddes,fecdes,lote,fectras,trans FROM ceobj WHERE fectras = " & Fec1 & ""

Agradezco de tu ayuda de antemano colega
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:CONSULTA SQL DE UNA FECHA PLEASE

Publicado por elio (70 intervenciones) el 11/01/2005 18:56:35
Fecha es siempre problema

Falto decir q motor usas,
lo mas confiable q consegui es

** en MS ACCESS
'
' WHERE FECHA = #mm-dd-yy#
'
uso siempre formato EEUU, no importa la configuracion del PC

(ah, en la instr SELECT te olvidaste los #)


*** en MS SQL SERVER,
sirve poner la fecha como string, los numerales no andan
'
' WHERE FECHA = CONVERT(DATETIME, 'mm-dd-yy' , 1)
'
el 1 es para asegurarte q convierte desde el formato mm-dd-yy


salud y buen provecho
lito

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONSULTA SQL DE UNA FECHA PLEASE

Publicado por EDGAR (193 intervenciones) el 11/01/2005 20:04:16
Si colega yo lo utilizo en access y necesito que el me tome la fecha que tiene el maskedbox y por eso use esa instrucción. Me ayudas a elaborar la instruccion correcta amigo??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONSULTA SQL DE UNA FECHA PLEASE

Publicado por lito (70 intervenciones) el 11/01/2005 22:02:52
--------------------------

Como parametro uso un conrtol que devuelve tipo date (dtPicker),
y le meto los numerales asi:

'
Public Function asFecha(dFecha As Date) As String
asFecha = " #" & Format(dFecha, "mm-dd-yyyy") & "# "
End Function
'

ej:
rs.open "select * from table where fecha = " & asFecha(dtPicker) _ ...

Uso dtPicker porque este control presenta la fecha
de acuerdo con la configuracion del pc;
si cambia la configuracion, control y vb se siguen entendiendo.

-----------------------------

Para tu caso

Si usas uno que devuelve string, (txtbox)
entonces debes tener cuidado con la configuracion regional:
como sabes si los 1ros 2 digitos son mes o dia?
habria q hacer una llamada al sistema

-------------------

Si obligas al usuario a usar siempre siempre el formato d/m/y
y no te preocupa la configuracion del pc

Voy a usar tu ejemplo
(OJO escribo directamente aca, no lo estoy probando)

'
Fec1 = Format(CDate(MKBfec1.Text), "dd/mm/yyyy")
SQL = "SELECT nacionalidad,cedula1,priape,segape,prinom,segnom,fecnac,articulo1,codobj,coddes,fecdes,lote,fectras,trans FROM ceobj WHERE fectras = " & Fec1 & ""
'

yo lo pondria

'
Fec1 = Format(CDate(MKBfec1.Text), "mm-dd-yyyy")
SQL = "SELECT nacionalidad,cedula1,priape,segape,prinom,segnom,fecnac,articulo1,codobj,coddes,fecdes,lote,fectras,trans FROM ceobj WHERE fectras = #" & Fec1 & "# "
'

Ojo otra vez:
Para la fecha 22/2/2005, siempre funciona, porque le vb se da cuenta
de q 22 no puede ser el mes y lo da vueta,
asi q cuando pruebes la funcion, verificalo con dias bajos,
sino sera prueba incompleta.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONSULTA SQL DE UNA FECHA PLEASE

Publicado por Rene (8 intervenciones) el 11/01/2005 21:08:22
Parece ser que solo te faltan los gatos en la segunda instrucción
...fectras = #" & Fec1 &"#"

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONSULTA SQL DE UNA FECHA PLEASE

Publicado por lito (70 intervenciones) el 11/01/2005 22:25:55
Dear Rene:
¿ seguro que anda
' #dd/mm/aa# ?
como sabe el sql q es dia y no mes?

¿No es como mandar
' where precio = 3,50
en vez de 3.50 ?

tuve problemas con eso, por lo que carga el usuario,

para fechas, ahora trabajo con sql server y su convert(datetime,,1 )
y ya no me preocupa

-dispersion-
para numeros, convierto lo q carga el usuario
-q usa punto o coma indistintamente- (si, gracias al teclado)
a lo q la config regional pide,
El problema ahora es q no puede poner separador de miles,
Pero no podia prohibirle usar el punto del teclado numerico!!!


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONSULTA SQL DE UNA FECHA PLEASE

Publicado por EDGAR (193 intervenciones) el 12/01/2005 13:55:41
Guao colega, de igual forma aunque coloque la instruccion de esta manera:

SQL = "SELECT nacionalidad,cedula1,priape,segape,prinom,segnom,fecnac,articulo1,codobj,coddes,fecdes,lote,fectras,trans FROM ceobj WHERE fectras = #" & Fec1 & "#"

No realiza la consulta. Es extraño ya que por ejemplo intento hacer una consulta de prueba de esta manera:

SQL = "SELECT nacionalidad,cedula1,priape,segape,prinom,segnom,fecnac,articulo1,codobj,coddes,fecdes,lote,fectras,trans FROM ceobj WHERE fectras = #06/12/2004#"

que es como se encuentra en la base de datos el formato de la fecha y no me arroja ningun resultado... Agradezco de tu ayuda amigo, los resultados de la consulta lo reflejo en un msflexgrid.... Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONSULTA SQL DE UNA FECHA PLEASE

Publicado por lito (70 intervenciones) el 12/01/2005 16:50:01
WHERE fectras = #06/12/2004#"

no funciona?

insisto, por las dudas
se debe poner el mes primero
WHERE fecha = #mes-dia-año#"

si 6 es el MES y 12 el DIA, deberia funcionar,
no importa la configuracion regional.

********

si no es ese el problema,
no tengo idea, tendras que poner mas informacion.
ej, como prueba, poner
where fecha > #06/12/2004#"
y
where fecha < #06/12/2004#"
y deducir el problema en base a los datos que ves...

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar