Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ingresar fecha en un campo date

Estas en el tema de Ingresar fecha en un campo date en el foro de Mysql en Foros del Web. quien me explica como ingresar una fecha que la guardo en una variable de tipo string y la deseo guardar en un campo de tipo ...
  #1 (permalink)  
Antiguo 20/05/2009, 20:03
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Ingresar fecha en un campo date

quien me explica como ingresar una fecha que la guardo en una variable de tipo string y la deseo guardar en un campo de tipo DATE en mysql

PD: todos dicen usa la funcion STR_TO_DATE() pero no se como se usa
no he visto ejemplos donde se inserten.

gracias por su tiempo
  #2 (permalink)  
Antiguo 20/05/2009, 20:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ingresar fecha en un campo date

STR_TO_DATE se usa pasándole como primero parámetro la fecha como texto, y el segundo parámetro para especificar el formato en que está la fecha. Por ejemplo:
Código MySQL:
Ver original
  1. SELECT STR_TO_DATE('20/05/2009', '%d/%m/%Y');
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 21/05/2009, 17:50
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

y como puedo aplicarlo a mi codigo =s
que realmente no pude aplicarlo =/
este es mi codigo

Código:

String FechaX=jcb_diaX.getSelectedItem()+"/"+jcb_mesX.getSelectedItem()+"/"+jcb_añoX.getSelectedItem();//Carga La fecha de emision
       
        //ACTUALIZACION DE DATOS
        CargaBase();
        try {
                        
        String Ingreso2="INSERT INTO productosx (id,nombre,cantidad,fecha) VALUES('"+jtf_id.getText()+"','"+jtf_nombre.getText()+"','"+jtf_cant.getText()+"','"+FechaX+"');";
        sentencia.executeUpdate(Ingreso2);//Operador Que Ingresa
                //Ingreso A La tabla Registro                               
                msj.showMessageDialog(null, "Producto: "+jtf_id.getText()+" Registrado","Registro",JOptionPane.INFORMATION_MESSAGE);//Mensaje
                 
                con.close();//Cierre de Ingreso 
        
              } catch(SQLException e) //Capturador de Errores
            {
                msj.showMessageDialog(null, "Error"+e,"Error",JOptionPane.INFORMATION_MESSAGE);//Mensajes de error 
            }
ayuda plis =/
  #4 (permalink)  
Antiguo 21/05/2009, 20:13
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Ingresar fecha en un campo date

Hola
Aqui hable un poco de eso http://codigolinea.com/2009/04/10/in...mato-en-mysql/

Insertarías algo así
Código mysql:
Ver original
  1. INSERT INTO demo (fecha)
  2.       VALUES (STR_TO_DATE('20/05/2009', '%d/%m/%Y'))
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 21/05/2009, 20:51
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

gracias Genetix por tu respuesta =)
pero ese ejemplo ya lo habia visto y el problema es como insertar la fecha que estoi rescatando
de los combobox e insertar lo demas como muestro en mi ejemplo
YA que tengo ke meter la fecha el id del producto, el nombre y la cantidad o sea son varios
y a pesar que lo intente de varias formas no pude hacer que me funcionara =/

ojala me ayuden con mi problema gracias

=S
Código:
String Ingreso2="INSERT INTO productosx (id,nombre,cantidad,fecha) VALUES('"+jtf_id.getText()+"','"+jtf_nombre.getText()+"','"+jtf_cant.getText()+"','"+FechaX+"');";
  #6 (permalink)  
Antiguo 21/05/2009, 20:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

Rockex la pregunta es en que formato viene la fecha en FechaX.

Si FechaX es igual a 20/05/2009 pruebalo así:

Código PHP:
Ver original
  1. String Ingreso2="INSERT INTO productosx (id,nombre,cantidad,fecha) VALUES('"+jtf_id.getText()+"','"+jtf_nombre.getText()+"','"+jtf_cant.getText()+"',str_to_date('"+FechaX+"','%d/%m/Y'));";

Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 22/05/2009, 04:44
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

ola
intente con tu opcion huesos52
y me dio el sgte error

Errorjava.sql.SQLException: Column ' fecha ' cannot be null

o sea que no me esta tomando lo que guarda fecha y sobre el tipo de formato de fecha
viene en String FechaX

cualquier opinion ayuda gracias huesos52 te lo agradesco mxo
=/
  #8 (permalink)  
Antiguo 22/05/2009, 07:41
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

rockex...

Al parecer la variable FechaX no tiene contenido. por eso te pregunto, que trae la variable FechaX antes de ser insertada?

No se como será en java, pero haz una impresión de la variable justo antes de ejecutar la sentencia y cuéntanos que valor trae. Teniendo el formato con el que viene, se puede hacer un correcto uso de la función str_to_date.

Estoy casi seguro, que no estas asignando correctamente en la variable FechaX la fecha.


---EDICION:

Mira esto:
Código mysql:
Ver original
  1. mysql> insert into fechas1 (fec) values(str_to_date('20/05/2009','%d/%m/%Y'));
  2. Query OK, 1 row affected (0.02 sec)
  3.  
  4. mysql> insert into fechas1 (fec) values(str_to_date(null,'%d/%m/%Y'));
  5. ERROR 1048 (23000): Column 'fec' cannot be null

Fijate que el error que devuelve java desde sql es el mismo. Con toda seguridad te puedo decir que la variable FechaX tiene un valor null y no un valor de fecha válida.

Nos cuentas como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 22/05/2009 a las 07:54
  #9 (permalink)  
Antiguo 22/05/2009, 14:11
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

olas de new =)
te cuento huesos52 sabes que lo imprimi y me mostraba bien lo que guardaba pero no me ingresaba
ejemplo: 31/12/2009 y lo imprimia bien y no ingresaba tiraba el mismo error pero lo volvi a escribir todo de nuevo y nose como pero me ingreso quisas fue algo de sintaxis pero yo juro que estaba tal cual =s
la cosa es que gracias por darme la idea de imprimir lo que trae para ver si no esta vacio
bueno ahora prosiguiendo

necesito si me puedes orientar como aplicar lo del GET_FORMAT() en esa consulta
o solo se usa cuando uno trabajas con Select ?
ya que en la bd me lo guarda asi yyyy/mm/dd

Código:
mysql> SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR'));
        -> '03.10.2003'
se que es el europeo para que quede como necesito pero como se usa ni idea
si tienes tiempo te lo agradeceria muxo
gracias por toda la ayuda nserio me sacaron de mi apuro thanks

Última edición por rockex; 22/05/2009 a las 14:13 Razón: agrego
  #10 (permalink)  
Antiguo 22/05/2009, 14:42
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

Cual es tu objetivo rockex?

El formato estándar para almacenamientos de fechas es mysql es yyyy-mm-dd. Asumo que es así, para evitar confusiones al sistema que tengan que ver con la configuración regional del servidor.
Al no existir un formato yyyy-dd-mm, se da la plena certeza que no habrá confusión entre dias y meses (04/03/2009.... 4 de marzo o 3 de abril?), cosa que pasa en los formatos dd-mm-yyyy y mm-dd-yyyy que son dos formatos validos.

La solución que ofrece mysql para ser compatible con todos los formatos, son las funciones str_to_date, date_format y get_format.

La estas usando adecuandamente en una consulta.

Que debes hacer con el get_format? que operación tratas de hacer?

Un saludo rockex.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #11 (permalink)  
Antiguo 22/05/2009, 14:55
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

Hi!! huesos52 =)
sabes haz sido super buena onda y gracias por tu ayuda nserio =)
mira te cuento mi objetivo es una busqueda entre 2 fechas y resulta que
me dijo el moderador que para realizar más comodamente las consultas
tenia que usar STR_TO_DATE() asi que como no tenia la mas minima idea como usar eso hice un nuevo tema ya que en el otro que hize no me inflaron mxo que digamos =(
pero ahora ya se como se usa y ahora tengo que probar la busqueda si me funciona
bien o no

mira aca planteo mi tema si puedes te agradeceria mxo que le heches un vistaso =)
thanks nuevamente Huesos52
saludos =)
  #12 (permalink)  
Antiguo 22/05/2009, 15:01
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

eeemm
intente poner el enlace pero por reglas del foro no me dejo
asi que te dire donde esta el tema

esta en la pagina nro 3

y el tema es :

busqueda por fechas segun codigo

ojala puedas gracias ^^
  #13 (permalink)  
Antiguo 22/05/2009, 15:45
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

Tienes un gran problema rockex, por que según entiendo en el post en que david el grande te ha asesorado, la fecha la tienes como varchar y no como date.

Yo te propongo modificar el tipo de dato de varchar a date en la tabla.
Pero para eso, debes hacer varias cosas:
Como ya hay registros en la base de datos y no se pueden perder, es necesario convertir primero estos datos a formatos que los entienda el tipo de dato date. Te muestro en un ejemplo lo que debes hacer para cumplir con exito la operación de conversión:

Código mysql:
Ver original
  1. Paso 0: Iniciar una transacción. En caso de que se haga algo mal,
  2. se puede corregir utilizando rollback.
  3.  
  4. mysql>begin;
  5.  
  6. Si algo sale mal en cualquier paso, debes digitar:
  7. mysql>rollback;
  8. Y empezar de nuevo el proceso.
  9.  
  10. Paso 1: Creo tabla con tipo de dato varchar. (Asi es como lo tienes)
  11. mysql> create table rockex(fecha varchar(10));
  12. Query OK, 0 rows affected (0.03 sec)
  13.  
  14. Paso 2: Ingreso un valor con formato (dd/mm/yyyy)
  15. mysql> insert into rockex values('20/03/2009');
  16. Query OK, 1 row affected (0.00 sec)
  17.  
  18. Paso 3: Consulta de tabla
  19. mysql> select *from rockex;
  20. +------------+
  21. | fecha      |
  22. +------------+
  23. | 20/03/2009 |
  24. +------------+
  25. 1 row in set (0.00 sec)
  26.  
  27. Paso 4: Hay que reemplazar los '/' por '.' para acomodarnos al formato EUR de
  28. la funcion get_format
  29. mysql> update rockex set fecha=replace(fecha,'/','.');
  30. Query OK, 1 row affected (0.05 sec)
  31. Rows matched: 1  Changed: 1  Warnings: 0
  32.  
  33. Paso 5: Consulta para verificar que haya quedado bien.
  34. mysql> select *from rockex;
  35. +------------+
  36. | fecha      |
  37. +------------+
  38. | 20.03.2009 |
  39. +------------+
  40. 1 row in set (0.00 sec)
  41.  
  42. Paso 6:Convertir las fechas de formato dd.mm.yyyy a formato mysql yyyy-mm-dd
  43. mysql> update rockex set fecha=str_to_date(fecha,get_format(date,'EUR'));
  44. Query OK, 1 row affected (0.00 sec)
  45. Rows matched: 1  Changed: 1  Warnings: 0
  46.  
  47. Paso7: verificar que esté bien.
  48. mysql> select *from rockex;
  49. +------------+
  50. | fecha      |
  51. +------------+
  52. | 2009-03-20 |
  53. +------------+
  54. 1 row in set (0.00 sec)
  55.  
  56. Paso 8: Cambiar el campo de varchar a date.
  57. mysql> alter table rockex modify fecha date;
  58. Query OK, 1 row affected (0.03 sec)
  59. Records: 1  Duplicates: 0  Warnings: 0
  60.  
  61. Paso 9: Verificar que todo esté bien.
  62. mysql> select *from rockex;
  63. +------------+
  64. | fecha      |
  65. +------------+
  66. | 2009-03-20 |
  67. +------------+
  68. 1 row in set (0.00 sec)
  69.  
  70. Paso 10: si todo está bien confirmamos la transacción:
  71. mysql>commit;
  72. Query OK, 0 rows affected (0.00 sec)

De esta forma no tendrás que utilizar el str_to_date para consultar la fecha, sino que puedes utilizar el between con el campo limpio.

Cualquier cosa, lo comentas.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #14 (permalink)  
Antiguo 22/05/2009, 18:11
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

Lo que sugiere david es la mejor opción, para evitar cambiar el tipo de dato del campo fecha.

Si quieres evitar realizar todos estos cambios, la fecha puedes insertarla directamente sin hacer uso de ninguna función.

Código mysql:
Ver original
  1. String Ingreso2="INSERT INTO productosx (id,nombre,cantidad,fecha) VALUES('"+jtf_id.getText()+"','"+jtf_nombre.getText()+"','"+jtf_cant.getText()+"','"+FechaX+"');"

Para consultarla sería necesario usar str_to_date (como dice david) para formatear temporalmente el campo mientras se ejecuta la consulta.

Código mysql:
Ver original
  1. select *from productosx where str_to_date(fecha,'%d/%m/%Y') between '2009-02-01' and '2009-02-28';
un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #15 (permalink)  
Antiguo 23/05/2009, 01:44
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

olas Huesos52

te escribo alas 3:37 de la madrugada xd!

por que nose que le paso a la net que no te pude responder en la hora libre y despues se me hizo tarde asi disculpa aca te escribo lo que te iva a escribir en la tarde




ola Huesos52

tengo los campos como date de fecha asi que no ay problema ya con eso pero el problema es la consulta en si.
Ahora ingresan bn con STR_TO_DATE() y no ay problema con eso del ingreso
ahora a lo que quiero llegar

como le hago para buscar de una fecha hasta otra fecha

ejemplo

quiero buscar los registros de un producto segun el codigo de producto que ingreses
y ademas segun la fecha que necesites ejemplo: desde 22/05/2009 hasta 31/05/2009 codproducto:[ 1 ] ese es mi objetivo


pero tengo el GRAN DETALLE

tabla1 registro_compra

-id_detalleRC
-cod_producto
-cantidad
-precio
-total_producto

tabla2 detalle_doc

-id_detalle
-tipo_documento
-nro_factura
-nro_documento
-rut_proveedor
-cod_proveedor
-fecha_emision
-fecha_vencimiento
-total_bruto
-descuento
-neto
-iva
-ila
-total_compra

ahora te explico tengo el sistema que ingresa una compra y guarda todos esos datos en esas 2 tablas ahora yo necesito que me muestre en la consulta
lo siguiente:

fecha_emision - fecha_vencimiento - tipo_documento - nro_factura - nro_documento - cod_proveedor - cod_producto - precio - total_producto

todo eso SEGUN EL LA FECHA INDICADA desde 22/05/2009 hasta 31/05/2009 segun codigo del producto que busques

ese es el meollo del problema espero me ayas entendido
gracias por darte el trabajo de leer estos atados de codigo que me estan ahogando =/
saludos gracias

sorry por las molestias =/

thanks
  #16 (permalink)  
Antiguo 23/05/2009, 01:50
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

y olvidaba decirte que probe eso y no me funciono para consultar


FechaEX= Fecha Emision

FechaVX= Fecha Vencimiento

Código:
String FechaEX=jcb_diaEX.getSelectedItem()+"/"+jcb_mesEX.getSelectedItem()+"  /"+jcb_añoEX.getSelectedItem();     
                                                        
String FechaVX=jcb_diaVX.getSelectedItem()+"/"+jcb_mesVX.getSelectedItem()+"/"+jcb_añoVX.getSelectedItem();
       
        
           
String Consulta4 ="SELECT * FROM productosx WHERE STR_TO_DATE(fecha,'%d/%m/%Y') BETWEEN "+FechaEX+" AND "+FechaVX+";";

te agradesco por cada letra que escribes =P
gracias Huesos52 el grande =)
tau
  #17 (permalink)  
Antiguo 23/05/2009, 01:52
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

gracias por todo si no me urgiera tanto no los molestaria tanto nserio u.u
grax

Última edición por rockex; 23/05/2009 a las 01:54 Razón: post extra
  #18 (permalink)  
Antiguo 23/05/2009, 05:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ingresar fecha en un campo date

Intenta con esto, pues por lo que veo esas fechaEX y fechaVX tendrán el mismo formato
Solución 1)
String Consulta4="SELECT * FROM productosx WHERE STR_TO_DATE(fecha,'%d/%m/%Y') BETWEEN "+STR_TO_DATE(fechaEX,'%d/%m/%Y') +" AND "+STR_TO_DATE(fechaVX,'%d/%m/%Y') +";";

Solución 2)
De todas formas, yo no entiendo por qué no le das la vuelta a las variables:
String FechaEX=jcb_añoEX.getSelectedItem()+"/"+jcb_mesEX.getSelectedItem()+" /"+jcb_diaEX.getSelectedItem();

String FechaVX=jcb_añoVX.getSelectedItem()+"/"+jcb_mesVX.getSelectedItem()+"/"+jcb_diaVX.getSelectedItem();

y luego simplemente lo que tenías:
String Consulta4 ="SELECT * FROM productosx WHERE STR_TO_DATE(fecha,'%d/%m/%Y') BETWEEN "+FechaEX+" AND "+FechaVX+";";
  #19 (permalink)  
Antiguo 23/05/2009, 09:43
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

Cita:
tengo los campos como date de fecha asi que no ay problema ya con eso pero el problema es la consulta en si.
Yo lo haría así:
Código java:
Ver original
  1. String Consulta4="SELECT * FROM productosx WHERE fecha BETWEEN "+STR_TO_DATE(fechaEX,'%d/%m/%Y') +" AND "+STR_TO_DATE(fechaVX,'%d/%m/%Y') +";";

Cita:
De todas formas, yo no entiendo por qué no le das la vuelta a las variables:
String FechaEX=jcb_añoEX.getSelectedItem()+"/"+jcb_mesEX.getSelectedItem()+" /"+jcb_diaEX.getSelectedItem();

String FechaVX=jcb_añoVX.getSelectedItem()+"/"+jcb_mesVX.getSelectedItem()+"/"+jcb_diaVX.getSelectedItem();
Estoy de acuerdo con jurena. Te enredas con estas variables.

Por todo lo que hemos visto, tienes campos tipo date, pero desde java manejas el formato dd/mm/yyyy. Recoje esa cadena completa sin procesar, y pasala a mysql, que con str_to_date puedes hacer la consulta o inserción de datos sin problema con todas las sugerencias que haz recibido.

Cuentanos como te va.

Un saludo para todos.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #20 (permalink)  
Antiguo 26/05/2009, 13:31
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

holas huesos52 , jurena y david el grande =)
bueno 2 cosas primero agradecer la ayuda =)
y segundo creo que entendi lo que me faltaba ustedes siempre en sus respuestas ponian
este campo para usar el BETWEEN EJ: ----> "fecha"


Código:
"SELECT * FROM productosx WHERE fecha BETWEEN "+STR_TO_DATE(fechaEX,'%d/%m/%Y') +" AND "+STR_TO_DATE(fechaVX,'%d/%m/%Y') +";";

y resulta que yo no tengo un campo de fecha en mi bd tengo dos campos en mi bd los cuales son fecha_emision y fecha_vencimiento
y ese "fecha" no existe en mi bd y yo me di cuenta de que no estaba poniendo ese campo en mi consulta ejemplo miren: ---> BETWEEN '"+FechaD+"' AND '"+FechaH+"';";<-----

Código:
String Consulta ="SELECT * FROM registro_compra WHERE cod_producto="+jtf_codP.getText()+" BETWEEN '"+FechaD+"' AND '"+FechaH+"';";
y tenia esto que es lo que necesito solucionar

Código:
---->WHERE cod_producto="+jtf_codP.getText()+<-----
o sea en si la consulta que necesito es que me muestre los detalles del producto
que el usuario necesite ver segun la fecha que escoja

ese cod_producto es el campo de la bd que tiene todos los codigos de productos
y el usuario ingresara el codigo de un producto ejemplo del producto 1 y lo guarda
el campo --> jtf_codP.getText() <-- para hacer la comparacion de la consulta y asi llamar los registros de ese producto segun la fecha indicada ( DESDE - HASTA )

espero puedan ayudarme
y gracias por ayudarme con eso de la fecha.
saludos
  #21 (permalink)  
Antiguo 26/05/2009, 13:34
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

en si mi consulta es que pongo en lugar de"fecha" para hacer la comparacion del between
?

no se si sera valido pero podria poner la fecha de emision no se si funcione pero

estare atento a sus opiniones

gracias

saludos =)
  #22 (permalink)  
Antiguo 26/05/2009, 13:48
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

Rockex

Por que no nos compartes un ejemplo grafico de lo que deseas hacer?
Pega unos cuantos registros y dinos que salida esperas. Cuentanos en detalle que campos tipo fecha deseas comparar con la clausula between y and.

Con esta información te podemos ayudar.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #23 (permalink)  
Antiguo 26/05/2009, 14:39
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

te tratare de dibujar lo ke kiero ke me muestre y como es el frame en si



_________________________________________________
| |
|Fecha Emision Fecha Emision codigoProducto |
| ___________ ___________ _______ _________ | ||__|___|____| |__|___|____| |______| | Consultar| |
| |________|
| |
| |
| |
| |
|FechaEm. Fecha Ven. NºFact. NomProd. Precio Cant. Total Venta
|________ ________ ____ _______ _____ _____ ______
||__|__|__| |__|__|__| |___| |______| |____| |____| |_____|
| | |
| |
| |
|------------------------------------------------------------------------------


ahi en cod producto el usuario pone el codigo de algun producto x selecciona la fecha desde cuando hasta cuando y hace la consulta, mostrando los registros de este producto X con los detalles que dibuje =)
espero haya quedado mas claro

aca va la tabla


nro_factura

cod_producto

nom_producto

cantidad

precio

total_prod

fecha_emision

fecha_vencimiento

y asi es como esta la consulta actual
que de hecho no funciona

Código:
String Consulta ="SELECT * FROM registro_compra WHERE fecha_emision BETWEEN "+STR_TO_DATE(FechaD,'%d/%m/%Y') +" AND "+STR_TO_DATE(FechaH,'%d/%m/%Y')+" AND cod_producto="+jtf_codP.getText()+";";

hize lo que pude tratando de dibujarles el entorno grafico espero me ayuden plz =/
Saludos Huesos52

Última edición por rockex; 26/05/2009 a las 14:51 Razón: asdf
  #24 (permalink)  
Antiguo 26/05/2009, 15:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

Ya te debería funcionar.

Prueba cambiando el orden de los condicionales.

Código codigo:
Ver original
  1. String Consulta ="SELECT * FROM registro_compra WHERE cod_producto="+jtf_codP.getText()+" AND fecha_emision BETWEEN "+STR_TO_DATE(FechaD,'%d/%m/%Y') +" AND "+STR_TO_DATE(FechaH,'%d/%m/%Y')+";";

Nos cuentas como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #25 (permalink)  
Antiguo 26/05/2009, 15:13
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

unclose character literal

eso me sale en la consulta =/
  #26 (permalink)  
Antiguo 26/05/2009, 15:31
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

rockex...

Hagamos algo..

Abre una terminal de mysql o desde phpmyadmin.

Digita la consulta limpia con las fechas que buscas.

Código mysql:
Ver original
  1. select *from registro_compra where
  2. cod_producto = 123 and fecha_emision
  3. str_to_date('01/01/2009','%d/%m/%Y')
  4. str_to_date('31/12/2009','%d/%m/%Y');

Si esto funciona, el problema está en la concatenación de las variables de java.

Cuentanos si ese es el problema.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #27 (permalink)  
Antiguo 26/05/2009, 15:56
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

olas =)

si funciono y me busco o sea esta bien la consulta
asi que podemos decir ke es algo de la concatenacion de las variables pero no le veo nada io
a menos que las variables FechaD Y FechaH tengan algo mal

Código:
fecha_emision BETWEEN "+STR_TO_DATE(FechaD,'%d/%m/%Y') +" AND "+STR_TO_DATE(FechaH,'%d/%m/%Y')+";";
  #28 (permalink)  
Antiguo 26/05/2009, 16:09
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ingresar fecha en un campo date

Rockex... como ves, la consulta está bien.

Como consejo, imprime el valor de las variables, y mira que está pasando. Asegurate que estés concatenando bien el codigo java con código mysql.

Por ultimo prueba esto, pero ya se sale del tema Bases de Datos y otra respuesta nos puede costar un llamado de atención.

Código java:
Ver original
  1. variable="select *from registro compra where cod_producto ="+jtf_codP.getText()+" and fecha_emision BETWEEN STR_TO_DATE("+FechaD+",'%d/%m/%Y') AND STR_TO_DATE("+FechaH+",'%d/%m/%Y')+";";

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #29 (permalink)  
Antiguo 28/05/2009, 20:08
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Ingresar fecha en un campo date

Hi!!! Huesos =) queria agradecerte por tu ayuda ya he solucionado mi problema
y el error era la manera de ingreso venian en dd/mm/yyyy y el STR_TO_DATE no se porque no me concatenaba bn las variables asi que me probe a cambiar el modo que ingresan y los deje tal y como los guarda MySQL y quedo bn =) se los agradesco mxo,
ahora me falta menos casi nada de mi programa y todo gracias a ti y a los demas
que aportaron su grano de arena =) thanks Huesos52, Jurena ,David el Grande y Genetix =)
muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:53.