• Lunes 23 de Diciembre de 2024, 08:21

Autor Tema:  que pasa con la fecha y mi codigo  (Leído 6733 veces)

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
que pasa con la fecha y mi codigo
« en: Jueves 24 de Septiembre de 2009, 17:53 »
0
hola bueno se que este tema ya esta demasiado tocado y quisiera saber porque estoo me sucede  :hitcomp:

Bueno es lo que me sucede pondre imagenes asi me dare a entender

base de datos sql 2000
tabla  fecha
tipo datetime

supongamos que ese es mi formulario  un datapick y un boton guadar



en el boton guadar puse esto

Código: C++
  1. //Declaro variable
  2.  
  3. datetime fecha
  4. fecha=datetime(dp_1.text)
  5.  
  6. INSERT INTO t_fecha  
  7.          ( fecha )  
  8.   VALUES ( :fecha )  ;
  9.  

supuestamente deberia guardarme pero no lo hace   :ouch:  

pero si lo guardo como texto normal  si me guarda sin convertira tipo date o datetime  y me ocaciona otro problem
que cuando voy a crear mi consulta en dw  entre dos fechas


ingreso las fechas 20/07/2009 y 30/11/2009 para buscar fechas entre ese rango ya que en mi tabla hay fechas q introduci manualmente 24/09/09 , 23/09/09



no se que pueda suceder ya cambie la configuracion regional y todo lo demas porfavor quisiera q me ayuden
« última modificación: Sábado 26 de Septiembre de 2009, 16:41 por darksito »


Juanra15

  • Miembro activo
  • **
  • Mensajes: 55
  • Nacionalidad: uy
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #1 en: Jueves 24 de Septiembre de 2009, 19:06 »
0
Hola Darksito, una pregunta, que version de Power Builder usas?

provaste al convertir la fecha a string darle el formato? ej: fecha = String(Today(), "yyyy/mm/dd") si solo vas a pasar la fecha declaralo como DATE (no como DATETIME).

Yo al trabajar con fechas las las guardo en la DB como char(8) con el siguiente formato 20091024 = 23/10/2009, tengo una funcion guardada que convierte al char(8) al formato fecha, asi las busquedas y filtros en la DB me queda mas practico, espero que te sirva de algo.

Saludos  :good:

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #2 en: Jueves 24 de Septiembre de 2009, 19:23 »
0
hola man me podrias pasar un ejemplo haci sencillo uff nu sabes cuanto me ayudaria no se antes me guardaba normal ahora no !! estoy algo desauciado y quiero romper mi compu xD gracias

uso la 11.5 y tambien prove en 10.5


F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #3 en: Viernes 25 de Septiembre de 2009, 09:05 »
0
El formato Estandar Internacional es YYYYMMDD el cual no necesita ningun formateo ni tampoco separadores


La verdad es que no es buena idea almacenar Fechas como texto, pues no se manipulan de la misma manera, no utilizan los mismos espacios, ni tampoco se obtienen los mismos resultados

Puedes convertirlo a Date
Código: Visual Basic
  1.  
  2. fecha=date(dp_1.text)
  3.  

o

a DateTime
Código: Visual Basic
  1.  
  2. fecha=datetime(dp_1.text,Now())
  3.  
Código: Visual Basic
  1.  
  2. INSERT INTO t_fecha   ( fecha )   VALUES ( :fecha )  using SQLCA ;
  3.  
  4. if SQLCA.SQLCODE<>0 then
  5.     MsgBox (string(fecha),SQLCA.SQLErrText)
  6. End if
  7.  
  8.  
  9.  

Comprueba el error que obtienes

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #4 en: Viernes 25 de Septiembre de 2009, 17:06 »
0
bueno ahora no me ocurre ningun problema en guardar pero ocurre esto q en mi base de datos se guarda 01/01/1900 y estamos 2009 y eleji diferentes fechas pero aun asi

esta tabla la cree para ver si funcionaba el codigo


que puedo hacer respecto a este problema ya reconfigue el idioma soy de peru

dd/mm/yyyy


Juanra15

  • Miembro activo
  • **
  • Mensajes: 55
  • Nacionalidad: uy
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #5 en: Viernes 25 de Septiembre de 2009, 18:02 »
0
proba con el formato de fecha que te dijo F_Tanori yyyy/mm/dd  la fecha 1/1/1900  creo que es la fecha minima que te deja guardar el tipo DATE, cuando hay algun problema con el formato de la fecha, te guarda esa fecha, por ejemplo vos le pasas 24/10/2009 y el sistema toma la fecha con el formato internacional (2009/10/24) ve que el formato no coincide y te guarda el famoso 01/01/1900  :scream:

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #6 en: Viernes 25 de Septiembre de 2009, 18:35 »
0
bueno guardando asi yyyy/mm/dd me funciono ! pero al guardar 2009/09/12 me guarda pero si le doy 2009/09/13 ya no me guarda :S hay q dolor de cabeza cambie tmbien yyyy/dd/mm igual
me sale el el error de conversion de tipo char a datetime pordujo un datatime fuera de rango

:( :hitcomp:


Juanra15

  • Miembro activo
  • **
  • Mensajes: 55
  • Nacionalidad: uy
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #7 en: Viernes 25 de Septiembre de 2009, 19:51 »
0
pero para el dia de hoy te funciono, solo faltan hacer funcionar el resto de las fechas  :lol:
estas guardando en una variable tipo DATE no? :think: no guardes en una datetime  :no:

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #8 en: Viernes 25 de Septiembre de 2009, 21:27 »
0
me guardar desde 01/09/2009 hasta el 12/09/2009 y apartir del 13/09/2009 ya no me guarda estoy usando un editmask le cambie formatos yyyy/mm/dd , yyyy/dd/mm , dateinternacional la mascakara es datemask mi configuracion reginal es Español(peru) ubicacion peru en fecha esta dia/mes/año que me sucede :(       quiero lobrar eso para que en mi dw pregunte buscar entre fechas me bote los resultados :(


F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #9 en: Viernes 25 de Septiembre de 2009, 21:39 »
0
La forma en que SQL Server almacena la informacion internamente ni siquiera es como fecha, pero para representarlo a la vista del humano, lo hace a traves  del formato YYYYMMDD Estandar Internacional (representado  visiblemente como YYYY-MM-DD en SQL Server ) sin importar la configuracion regional ni las preferencias de ubicacion del usuario

El problema que tienes es que PB no esta proporcionando un valor valido para el tipo de dato que esta esperando la base, y el tipo de dato en PB esta corrompido por lo tanto te da una fecha invalida representada en PB por 01/01/1900, para solventar esta situacion puedes hacer lo siguiente:

Cambiar el formato a la fecha usando la funcion String como bien te lo ha recomendado  Juanra15 ... pero no almacenarla como texto sino que de nuevo retornandola a un tipo de dato fecha (DATE) y de esta manera hacer el Insert

Código: SQL
  1. DATE fecha
  2. fecha =DATE(string(dp_1.text,'YYYY-MM-DD'))
  3. INSERT INTO t_fecha   ( fecha )   VALUES ( :fecha );
  4.  

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #10 en: Sábado 26 de Septiembre de 2009, 16:41 »
0
bueno ya me rindo formateare la pc y instalare el sql 2008 standar y power builder 10.5 haber q sucede gracias por su participacion de todo corazon bueno ahora movere el codigo q puse de la aplicacion bancaria a otro tema para los demas usuarios
atentamente
darksito


F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: que pasa con la fecha y mi codigo
« Respuesta #11 en: Sábado 26 de Septiembre de 2009, 21:40 »
0
Personalmente, no me parece la solucion ...

No creo que el problema sea por ahi Pero bueno cada quien


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================