Erreur de conversion MS Server 2008 R2

Résolu/Fermé
Lisinghg - 20 févr. 2020 à 12:51
 Lisinghg - 20 févr. 2020 à 13:40
Bonjour,
Je viens au près de vous solliciter une aide de votre part. Je m'explique, j'ai développé une application qui se connecte au base de données ms server le problème est que quand je veux récupérer les enregistrent a partir de la date d'ajout j'ai ce message d'erreur (Conversion failed when converting date and/or time from character

Si quelqu'un a une idée veuillez m'aider svp


Configuration: Windows / Chrome 63.0.3237.0
A voir également:

4 réponses

jee pee Messages postés 39611 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 230
20 févr. 2020 à 12:56
Bonjour,

Je ne connais pas la syntaxe sous sql server, mais tu dois avoir un problème de conversion date affichée/saisie avec le format date interne de la bdd.

Il faudrait ton code sql pour que quelqu'un puisse t'aider.


0
Voici comment j'ai procéder pour créer ma table avec le code sql
create table tblCart
(

id       int identity(1,1) Primary key,
transno  varchar(50),
pcode      varchar(50),
price    decimal(18,2),
qty      int,
disc     decimal(18,2),
total    decimal(18,2),
sdate    date,
status   varchar(50) default 'Pending',
cashier varchar(50)

)
0
Je ne suis pas spécialiste mais Il est recommandé de ne jamais stocker les dates dans le type de texte (varchar, char, nvarchar, nchar ou text) Toujours stocker la valeur de date dans les colonnes de type DATE, DATETIME et de préférence DATETIME2 (pour plus de précision) et laisser le formatage des informations de date à la couche d'interface utilisateur au lieu d'être récupéré de la base de données.
0
Lisinghg > marco
20 févr. 2020 à 13:11
Donc j'ai mal créer ma table je pense ?
0
Probablement car le message spécifie une erreur de conversion, donc je pense que le format n'est pas bon
0
Lisinghg > marco
20 févr. 2020 à 13:23
Quel format faut-il utiliser alors puisque au datetimepicker son format est custom
0
Bonjour,

Exemples :

Mauvais format :
Declare @date_time_value varchar(100)= '10/16/2015 21:02:04'
select CONVERT(datetime2, @date_time_value, 103) as UK_Date_Time_Style

Bon format :
Declare @date_time_value varchar(100)= '10/1/15 21:02:04'
select CONVERT(datetime2, @date_time_value, 103) as Date_Time_Style
0
J'ai essayé le bon format toujours le même msg
Bon format :
Declare @date_time_value varchar(100)= '10/1/15 21:02:04'
select CONVERT(datetime2, @date_time_value, 103) as Date_Time_Style
----------------------------------------------------------------------------------------------------------------------------
Msg 241, Level 16, State 1, Line 2
Conversion failed when converting date and/or time from character string.
0
J'ai trouvé ceci si cela peut vous aider :

Le type de données DATETIME est utilisé pour représenter la date et l'heure du jour entre le 1er janvier 1753 et le 31 décembre 9999, avec une précision arrondie à des incréments de .000, .003 ou .007 secondes. Les valeurs DATETIME sont stockées sous la forme de deux entiers de 4 octets. Les 4 premiers octets stockent le nombre de jours avant ou après la date de base du 1er janvier 1900 tandis que les 4 derniers octets stockent l'heure du jour représentée comme le nombre d'unités de 1/300 seconde après minuit.

Cette erreur se produit généralement lorsqu'une valeur de date et d'heure est convertie d'une représentation sous forme de chaîne en une représentation de type de données DATETIME et SQL Server ne peut pas effectuer la conversion en raison d'une valeur de date / heure incorrectement formatée.

Pour éviter cette erreur, assurez-vous que la valeur de caractère contenant la valeur date / heure est une date / heure valide qui peut être convertie en type de données DATETIME.

Si les données proviennent d'une autre table où la colonne contenant la valeur de date est définie comme VARCHAR et les données seront chargées dans une table où la colonne de destination est définie comme DATETIME, la fonction ISDATE () peut être utilisée pour déterminer si une entrée expression est une date valide. La fonction ISDATE () renvoie 1 si les expressions d'entrée sont une date valide; sinon, il renvoie 0.
0
Lisinghg > marco
20 févr. 2020 à 13:37
Mais dans ce formulaire je recupère rien que la date c'est pourquoi j'ai créé la colonne sdate au format date
0
marco > Lisinghg
20 févr. 2020 à 13:39
Ok, je n'en sais pas plus. Espérons que quelqu'un calé en SQL puisse vous répondre.
0
Lisinghg > marco
20 févr. 2020 à 13:40
Merci beaucoup
0