Update Fechas Mysql

Hola.
Amigos, tengo una tabla de una base de datos con los siguientes campos:

Id —> integer
mes —> varchar tamao 2
ano —> varchar tamano 4
fechacontrol —> date

Cargada por ejemplo asi:

Id mes ano fechacontrol
1 3 2016 0000-00-00
2 4 2016 0000-00-00
3 5 2016 0000-00-00
4 6 2016 0000-00-00
5 7 2016 0000-00-00
6 8 2016 0000-00-00

Estoy tratando de realizar una rutina para que quede asi:

Id mes ano fechacontrol
1 3 2016 2016-03-01
2 4 2016 2016-04-01
3 5 2016 2016-05-01
4 6 2016 2016-06-01
5 7 2016 2016-07-01
6 8 2016 2016-08-01

Siendo el formato de la fecha en la tabla Mysql AAAA-MM-DD

La rutina que utilizo es

Dim db As New MySQLCommunityServer
dim sql as string
db.Host = vector(0)
db.Port =val(vector(1))
db.DatabaseName = empresaactiva
db.UserName = Vector(2)
db.Password = Vector(3)

If db.Connect Then
sql = “UPDATE depositos SET fechacontrol=ano/mes/’‘01’” ‘************************’

DB.SQLExecute(sql)

If DB.Error Then
  MsgBox("DB Error: " + DB.ErrorMessage)
  
Else
  msgbox "La modificacion fue exitosa"
End If

else
msgbox “NO me pude conectar”
end if
db.close

he probado de varias maneras modificando siempre
sql = “UPDATE depositos SET fechacontrol=ano/mes/’‘01’”

pero no lo he logrado

La idea es que de cada registro se tome el mes, el ao, le agregue como dia 01 y forme la fechacontrol para cada registro.

Si alguien lo sabe o logra, por favor acepto gustoso la ayuda.

Esto es ms un asunto de SQL pero me luce que no ests supliendo un ‘datestring’ aceptable:

"UPDATE depositos SET fechacontrol=CONCAT_WS('-',ano,mes,'01')"

La manera de concatenar/formatos aceptables puede variar segn el tipo de SQL: no es mi ‘expertise’ pero puede que te ayude a resolver.

Hola @javier ledantes

Podrías utilizar Xojo.Core.Date para obtener una fecha de punto de partida, incrementarla en días como vayas necesitando y obtener la cadena con el formato compatible SQL mediante el método ToText. Luego sólo es cuestión de utilizar la cadena resultante en combinación con la sentencia SQL para actualizar la tabla.

Javier

Hola, esto puede servirte.


   Para mostrar cada registro tienes que crear RS.


    Dim ncreacion As New Date
    Dim strDate as String  = "2016-03-01"
    
    ncreacion.Year = Val(NthField(strDate, "/", 1))
    ncreacion.Month = Val(NthField(strDate, "/", 2))
    ncreacion.Day = Val(NthField(strDate, "/", 3))
   

    sql = "UPDATE depositos SET fechacontrol = " + SRT(ncreacion.Year) +  "/" + Set(ncreacion.Month) +  "/''01' "

Saludos.

Hola.
La solucion propuesta por Vaughn Cordero anduvo perfecto.

Muchas Gracias a todos los que ayudaron, me salvaron, gra gra gracias!!!