Recherche d'un champs déclarer smalldatetime [Résolu]

Signaler
Messages postés
40
Date d'inscription
mardi 29 janvier 2008
Statut
Membre
Dernière intervention
3 juin 2009
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
salut
j'utilise une base de données SQL server  , dans la  table (etatser)  j'ai un champs ( dated) déclaré smalldatetime
j'ai enregistré dans le champ (dated)  les enregistrements suivants :
   15/07/2008
   16/07/2008
   17/07/2008
   26/07/2008
   27/07/2008
j'ai ma requete sql suivant
   select * from etatser where dated ike '"& 1 &"%"
normalement j'ai les resultats sauivantes:
   15/07/2008
   16/07/2008
   17/07/2008
mais le probleme que j'ai aucune resultat

SVP aide moi

merci d'avance

3 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
Comme tu le dis, ton champ est au format smalldatetime, or LIKE marche avec des chaines de caractères.

Si une convertion implicite est habituellement faite, ici, sur des dates, la conversion implicite te renvoie surrement la date au format américain donc 2008-07-15 au lieu de 15/07/2008

il faut donc que tu fasse toi-même la conversion pour avoir la date dans le bon format.

select * from etatser where CONVERT(varchar,dated,103) like '1%'

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
40
Date d'inscription
mardi 29 janvier 2008
Statut
Membre
Dernière intervention
3 juin 2009

merci pour la solution, ça  a bien marché

j'ai un autre probleme si tu peux m'aider encore
si j'affecte une date a un champs smalldatetime aprés un Addnew j'ai le message suivant dans l'execution de update
 exemple :

etatser.addnew
etatser.Recordset.AddNew
etatser.Recordset("dated") = "15/07/2008"
etatser.Recordset.Update

[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion from datetime data type to smalldatetime data type resulted in a smalldatetime overflow error.

merci d'avance
HB
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
Es-tu sur de ton code ? je trouve la syntaxe un peu bizarre, bien que je ne ai plus l'habitude d'utiliser l'accès aux données avec VB6

En tout cas en utilisant ADO avec le code ci-dessous, j'arrive pas à reproduire ton problème :
----
   Dim cnn1 As ADODB.Connection
   Dim rst As ADODB.Recordset
   Dim strCnn As String

   Set cnn1 = New ADODB.Connection
   strCnn = "driver={SQL Native Client};server=localhost;database=TEST;Trusted_Connection=yes;"
   cnn1.Open strCnn
       
   Set rst = New ADODB.Recordset
   rst.CursorType = adOpenKeyset
   rst.LockType = adLockOptimistic
   rst.Open "Test1", cnn1, , , adCmdTable

   rst.AddNew
   rst!dated = "15/07/2008"
   rst.Update
   
   rst.Close
   cnn1.Close
, ----
, ----
[code.aspx?ID=41455 Coloration Syntaxique pour VB6 By ]

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php