Convertir varchar JJMMAAAA à JJ/MM/AAAA type datetime et sélectionnez la date la plus récente seulement

Ok, donc j'ai une sorte de bizarre... les dates dans le tableau ont été inscrits en tant que chaîne de valeurs MMDDYYYY et j'essaie d'avoir l'affiche comme MM/DD/YYYY dans un rapport, sélectionnez la date la plus récente concernant un ID, car certaines ID peut avoir plusieurs dates.

Exemple de ma table:

  ID  |  MyDate  |
------+----------+
  1   | 01302014 |
  1   | 04222014 |
  2   | 01302014 |

Ce que je veux voir quand je les sélectionner et de les insérer dans une table temporaire est présent:

  ID  |   MyDate  |
------+-----------+
  1   | 4/22/2014 |
  2   | 1/30/2014 |

Je sais que l'enregistrement des dates comme la chaîne de valeurs est une mauvaise pratique, en particulier lorsque les stockant comme MMDDYYYY, mais quelqu'un aurait-il une solution à ce cauchemar?

MODIFIER

J'ai oublié de mentionner que certains champs peuvent être NULL. Vous ne savez pas si cela fait une différence ou pas, mais je pense qu'il ne si j'essaie de retourner les dates à l'aide de la Droite, la Gauche, Convertir.

Avez-vous le contrôle de la base de données? Si oui, ce serait une très bonne idée de changer le schéma de sorte que le MyDate colonne est une Date colonne au lieu de varchar. Vous avez déjà dit que vous savez que stocker les dates sous forme de chaîne de valeurs est une mauvaise pratique - alors pouvez-vous résoudre ce problème? Une fois que vous avez fait cela, tout le reste devient beaucoup plus facile. S'attaquer à la source du problème plutôt que de le son le plus immédiat des symptômes.
Plus une seule recommandation que je puisse vous donner est de ne jamais jamais jamais jamais stocker des dates comme des chaînes de caractères. Au-delà de cela. Temporairement CAST le Madate à un type de données de date et d'utiliser ensuite les CONVERTIR pour la mettre dans le format que vous voulez.
Je voudrais avoir cette autorité. Je l'ai mentionné à d'autres que je pourrais aller de l'avant et de changer toutes les dates appropriées de format de date, mais ils veulent le garder comme varchar pour la façon dont les dates sont entrées dans par le biais de l'indexation des logiciels.
Si vous ne pouvez pas dire à eux, de les faire pointer vers ce commentaire de la mine ici maintenant: Ils sont idiots. Pure idiots.
Je ne pense pas qu'il mérite un downvote de l'OMI.

OriginalL'auteur Jaron Cook | 2014-04-25