PREGUNTA BASE DE DATOS


Objetivo: PREGUNTA BASE DE DATOS
hola y disculpen mi ignorancia
hace poco tiempo que se que existe gambas
y me ha lamado bastante la atencion
me he puesto a curiosear
y actualmente estoy conociendo la parte de base de datos
el proble es que cuando mando a guardar una fecha de un textbox o un valuebox
a la base de datos esta me cambia la fecha
incluso intente con esto
date (now)
para guardar la fecha actual del sistema y me cambia los valores de la fecha

alguien sabe por que sucede esto??
me puede dar una posible solucion??

de antemano gracias

Perfil MP  
Objetivo: Re: PREGUNTA BASE DE DATOS
hola.

Yo también tuve ese problema.

Mira esto:

http://foro.gambas-es.org/viewtopic.php?f=3&t=969

Objetivo: Re: PREGUNTA BASE DE DATOS
creo que plantee mal la pregunta disculpen de nuevo

el problema no es como se muestre en en un combox
el problema es como se guarda en la base de datos
por ejemplo
yo guardo
22/01/1980
y en la base de datos se guarda
22/01/1902
32/02/1906
y otras formas mas, es decir, la misma base de datos me cambia los valores

Perfil MP  
Objetivo: Re: PREGUNTA BASE DE DATOS
No puedes hacer nada. Así es como trabajan todas las bases de datos para campos definidos como date.

Aunque si declaras un campo como TEXT (no sé que motor usas, MYSQL o SQLITE?) y antes de guardar la fecha la formateas como desees, tendrás tu fecha como esperas.

Mi consejo es que lo hagas como explica ahtonio en el post que indicó pitussa. Evitarás muchos errores, sobre todo con el tema de la localización, que es la forma de mostrar las fechas según en qué idioma y también a la hora de ordenar o buscar entre fechas.

Saludos

Perfil MP  
Objetivo: Re: PREGUNTA BASE DE DATOS
estoy usando sqlite3

hice lo que dice en el post, pero ahora el formato es dd/mm/yy
y quisera que lo guardara dd/mm/yyyy
es esto posible??

Perfil MP  
Objetivo: Re: PREGUNTA BASE DE DATOS
¿Puedes postear el código que estás usando?

Sin saber lo que haces es difícil ayudarte.

Perfil MP  
Objetivo: Re: PREGUNTA BASE DE DATOS
Conexion.conex.Exec("INSERT INTO ALUMNOS(NOMBRE,NOMBRE2,APELLIDO1,APELLIDO2,LUGARNAC,SEXO,SANGRE,NO_MED,PRECAUCIONES, FECHANAC, EDAD)Values('" & NomAlum.Text & "', '" & Nom2Alum.Text & "','" & ApeAlum.Text & "','" & Ape2Alum.Text & "', '" & LNacio.Text & "','" & sexo & "', '" & GruSanAlum.Text & "', '" & MedProhi.Text & "', '" & Precauciones.Text & "', '" & Format(VFecha.Value, "yyyy/mm/dd") & "', " & EdadAlum.Text & ")")

'este lo uso para guardar en la BD
'por ahora solo estoy guardando

'el codigo de la fecha es:

PUBLIC FUNCTION DevuelveFecha() AS Date
Fecha.ShowModal
RETURN Var.IncluirFecha
END

PUBLIC SUB ToolButton1_Click()
VFecha.Value = DevuelveFecha()
EdadAlum.Text = DateDiff(VFecha.Value, Date(Now), gb.Year)

END

'asi guardo la fecha en el valuebox

última edición por Dervins el Domingo, 30 Enero 2011, 16:49; editado 1 vez
Perfil MP  
Objetivo: Re: PREGUNTA BASE DE DATOS
Hola de nuevo al temita de las fechas.

Tengo una tabla definida asi:
IF NOT hCon.Tables.Exist("pedido") THEN
hTable = hCon.Tables.Add("pedido")
WITH hTable.Fields
.Add("idped", db.Serial)
.Add("fecped", db.Date)
.Add("cliped", db.Integer,, 1) 'R-> Cliente
.Add("proped", db.Integer,, 1) 'R-> Producto
.Add("cteped", db.Float,, 0)
.Add("pteped", db.Float,, 0)
.Add("litped", db.Integer,, 0)
.Add("pvpped", db.Float,, 0)
.Add("cmsped", db.Float,, 0)
.Add("ivaped", db.Float,, 18.00)
.Add("fraped", db.Integer,, 0) '-> Nº factura en que se incluye
.Add("obsped", db.String, 115)
END WITH
hTable.PrimaryKey = ["idped"]
hTable.Update
ENDIF


El campo fecped (fecha pedido) si lo miras con SQLITE Databrowser, veras que es un campo DATETIME que se guarda en formato YYYY-MM-DD HH-MM-SS o algo asi (en la ayuda de sqlite3 puedes consultarlo). Para nuestro efectos vamos considerar unicamente YYYY-MM-AA OK?

Cuando queremos grabar un pedido en el campo fecha, el cual aceptaremos desde un ValueBox con Type = date, yo lo que hago es

rst["fecped"] = vbfec.Value

Si fuese un textbox lo haría asi:

rst["fecped"] = CDate(txtfec.text)

y de este/os modos cuando consultes la base de datos lo veras como 2010-05-12 00:00:00 . Yo no intentaría cambiar esto porque no me molesta y el espacio puede considerarse despreciable en principio.

Cuando lo quiero ver en un ColumnView o GridView en formato de 2 dig. para el año o de 4, emplea la función format directamente y no intento investigar como lo hace por defecto. Si lo haces así y el formato cambia por un casual, tu aplicación seguirá funcionando.
Por cierto en el ValueBox se te mostrará la fecha como 01/02/2011, pero si introduces 01/02/11 el te hará la conversión y la hará correctamente a 01/02/2011, por eso uso ValueBox te ahorra muchas validaciones.

Espero te ayude

Un saludo Antonio
xxx

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1106s (PHP: -15% SQL: 115%)
Consultas SQL: 24 - Debug off - GZIP Activado