-1
votes

Conversion du format de dates de différentes dates en format de date unique

Dans mon client d'application peut fournir une date dans tous les formats et je dois afficher la date donnée dans DD / mm / aaaa code> uniquement.Le formats de date sont AS-

1. dd-mmm-yyyy (Ex- 21-Jan-2019)
2. dd/mm/yyyy (Ex- 02/03/2019)
3. mm/dd/yyyy (Ex- 04/23/2019)
4. dd.mm.yyyy (Ex- 08.02.2019)
5. dd mmmm yyyy (Ex- 13 March 2019)
6. yyyy-mm-dd (Ex- 2019-03-04)
7. mmmm dd, yyyy (Ex- January 23, 2019)


9 commentaires

Qu'est-ce que le type de données de la colonne contenant ces date ??


Vous ne pouvez pas identifier le format. Il n'ya aucun moyen de savoir si votre deuxième exemple 02/03/2019 est DD / MM / AAAAA ou MM / DD / AAAAYY, vous devez fournir ces informations.


Hii j'ai cherché beaucoup dans Google mais n'ai trouvé aucun résultat.User peut entrer la date dans n'importe quel format et je dois convertir toutes les dates en format DD / MM / AAAA SEULEMENT. Ne pouvons-nous pas avoir d'alternativement pour cela.


J'utilise Varcharne pour tenir toutes les dates


Bonjour, peut-être que vous pouvez écrire une fonction, comme dans Réponse de page . Dans cette fonction, vous essayez de mettre tous les formats possibles.


Pourquoi utiliseriez-vous Varchark pour utiliser des dates? Il existe des colonnes de type spécifiques de la date pour cela - en utilisant le type approprié rend votre vie tellement plus facile ..


L'utilisateur n'entre pas manuellement des données. Nous avons un outil qui extrait la date de la facture numérisée. Et pendant l'extraction, il peut également ajouter des caractères indésirables .Due à cela, j'utilise Varcharne au lieu de la date.


Sont-ils les seuls formats de date qu'ils peuvent entrer? Ou peuvent-ils entrer 1 / 2-3 / 4 - // 6- * 7? Si vous connaissez tous les formats possibles entrants, vous pouvez les gérer. Si vous ne le faites pas, alors bonne chance!


Oui ci-dessus sont les seuls formats de date que je dois convertir.


3 Réponses :


0
votes

L'exemple du format 2 Dans votre question est un excellent exemple de la raison pour laquelle cela ne peut pas être fait, c'est-à-dire qu'il pourrait être interprété comme format 2 ou 3.

Vous auriez besoin de meilleur contrôle sur vos données entrantes, que je pense nécessiterait nécessairement un élément manuel.

Vous pouvez peut-être avoir une règle autour de laquelle les clients envoient des dates dans quel format, si vous tirez une sorte de nom / ID de client dans la base de données, puis vous pourriez exécuter la valeur de la chaîne via une fonction de conversion de date qui serait adapté à un client spécifique ou à un groupe de clients, mais même à ce moment-là, vous devez avoir confiance en ce qui resterait cohérent au fil du temps.


3 commentaires

Oui Mack, je peux conserver une liste de formats de date basés sur l'ID de fournisseur. Mais le problème est que j'ai une longue liste de fournisseurs et la plupart du format des fournisseurs est inconnu et le format n'est pas fixé pour spécifique au fournisseur. Je dois donc appliquer uniquement la logique personnalisée pour identifier les dates, puis convertir la date au format DD / MM / AAAA SEULEMENT.


Les vendeurs varieraient-ils à leurs formats de date? Si tel est le cas, je ne suis pas sûr qu'il serait possible de le faire sans entrée manuelle pour chaque facture (même si je lisais '01 / 02/2019 'avec mes propres yeux, à moins que quelqu'un me dise le format, je ne serais pas savoir quelle date c'était la date). Sinon, vous pourriez peut-être définir quelque chose d'où un format de destina par défaut est défini pour chaque fournisseur lorsque leur première facture s'inscrit. Cela nécessiterait une entrée utilisateur uniquement pour les nouveaux fournisseurs, ainsi que dans une démarrage initiale pour les fournisseurs actuels.


(La manière dont cela pourrait fonctionner serait que vous laisseriez des fournisseurs neufs / «non dépendants» dans une sorte de table de mise en scène, a alors configuré une sorte d'alerte pour dire aux utilisateurs que leur contribution était requise.)



2
votes

Il a déjà été mentionné que vos options (2) et (3) posent un problème existentiel pour résoudre ce problème. Ainsi, cette réponse ignore ce problème.

SQL Server est plutôt bon à propos de la détermination des dates. Ainsi, vous pouvez essayer: xxx

ceci retournera NULL valeurs pour les formats de date inconnus. Vous pouvez également rechercher des formats particuliers: xxx

Les expressions peuvent être plus compliquées que try_convert () Si vous devez mener la valeur de la chaîne avant de tenter une conversion.


0 commentaires

0
votes

Lorsque vous lisez ces factures, vous ne pouvez pas trouver le code cound et au lieu de définir des règles sur chaque fournisseur, faites des règles par pays? XXX

Standard de style


0 commentaires