Date aléatoire a envoyer dans SQL

SuicideNear -  
 L'éternel étudiant -
Bonjour,

Je voudrais faire en sorte que je récupère deux dates avec des datetimepickers pour créer une date aléatoire que j'enregistre ensuite en SQL.

pour la date aléatoire c'est bon :
 Function RndDate(bornInf As Date, BornSupp As Date) As String

Dim iDifferential = DateDiff(DateInterval.Day, bornInf, BornSupp)

iDifferential = New Random(System.DateTime.Now.Millisecond).Next(0, iDifferential)

Dim RdnDATE As String = DateAdd(DateInterval.Day, iDifferential, bornInf).ToString
Format(RdnDATE, "yyyy/MM/dd")
Return RdnDATE

End Function


mais ici j'ai un problème de format car quand je veux utiliser ma commande SQL il y des problemes de convertion et apres multiple tentative et essais diverse je ne sais plus quoi faire. Des fois la commande passe et des fois non. De plus l'instruction "Format" ne semble avoir aucun effet.

SQLmaj("Insert into TableFacture(PersonneID, ContenuID, MOID, Date, NumFacture) values('" & Client() & "', '" & IDContenu & "','" & IDMO & "', CAST('" & RndDate(DébutDate, FinDate) & "' AS DATE),'" & NumFacture & "');")


plz help

1 réponse

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Peut être un souci dans le type des données. Ta fonction renvoie un String, qui, si on le compare à une date, peut renvoyer des résultats erronés.

    Essaie (là je ne suis pas sur de moi...), de transformer ta fonction pour qu'elle retourne une Date.
    Peut être comme ceci :
    Function RndDate(bornInf As Date, BornSupp As Date) As Date        
        Dim iDifferential = DateDiff(DateInterval.Day, bornInf, BornSupp) 
        iDifferential = New Random(System.DateTime.Now.Millisecond).Next(0, iDifferential)
        Dim RdnDATE As String = DateAdd(DateInterval.Day, iDifferential, bornInf).ToString
        RdnDATE = Format(RdnDATE, "yyyy/MM/dd")
        Dim maDate As Date
        maDate = CDate(RdnDATE)
        Return maDate
    End Function

    0
    1. L'éternel étudiant
       
      Bonjour,
      Merci de ta réponse.
      C'est ce que j'avais fais a l'origine mais ca ne fonctionnait pas non plus.
      En ce qui concerne mon problème, à défaut de pouvoir le réglé je l'ai contourné et dans ma table SQL ce n'est plus une DATE mais un VARCHAR qui est enregistré.
      Mais je ne comprend toujours pas pourquoi ca ne marche pas avec une date.
      0