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

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
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