Analyser une date à partir du texte non formaté dans SQL
Je suis à essayer de comprendre d'une manière élégante d'obtenir une date à partir d'une colonne de texte qui possède des données de cette "AAAAMMJJ"...afin que nous puissions voir "20060508" comme une valeur dans la colonne, à qui je voudrais être en mesure de retourner à partir d'une requête comme une date (8 Mai 2006).
Je suis sûr que je peux pirater quelque chose ensemble donné assez de temps, mais les approches je pense que je vais me semblent assez encombrants, et je pense qu'il y est une façon, cela peut être réalisé avec élégance dans une seule requête.
Des suggestions?
Je pense que tu veux vraiment dire, de retour sous la forme de texte formaté comme le 8 Mai 2006 (par opposition à une date).
Nope...(il semble y avoir confusion à ce sujet, donc évidemment je n'ai pas à m'expliquer.) Je veux vraiment un jour...je viens de donner le "8 Mai 2006" pour expliquer ce que la valeur de la date devrait représenter. Apparemment, je viens de confondre les gens. 🙂
Nope...(il semble y avoir confusion à ce sujet, donc évidemment je n'ai pas à m'expliquer.) Je veux vraiment un jour...je viens de donner le "8 Mai 2006" pour expliquer ce que la valeur de la date devrait représenter. Apparemment, je viens de confondre les gens. 🙂
OriginalL'auteur Beska | 2009-09-11
Vous devez vous connecter pour publier un commentaire.
C'est déjà une date valide - ISO-8601 - il suffit d'utiliser:
ou alternativement:
et qui doit faire bien!
Afin d'obtenir votre "Mai 08, 2006" d'affichage, de faire une autre convertir en varchar, à l'aide de la date de convertir style 107:
Voir ici pour plus d'informations sur le casting & la conversion en MS SQL
+1. Moi je préfère le CAST moi-même.
oui, la FONTE est la meilleure façon de le faire, mais dans le but d'obtenir un style particulier, vous pourriez avoir besoin de les CONVERTIR avec un style ID à la fois.
oui, je viens de remarquer que l'OP ne veulent pas d'un DATETIME en fin de compte, mais une chaîne de caractères spécifique de la représentation; mise à jour de ma réponse
Merci! Je savais que cela pourrait être plus simple, mais je ne savais pas combien! Ne pas se produire pour moi que ce serait une date valide format!
OriginalL'auteur marc_s
vous donne ce résultat...
Voir ici pour plus d'informations sur le casting & la conversion en MS SQL.
Si vous essayez de parvenir à un format spécifique (8 Mai 2006) - vous devriez considérer de retour de la colonne comme une valeur de type datetime, et de laisser tout ce qui se passe à l'affichage de la valeur à l'utilisateur final (site web, application cliente, rapport, etc) faire la mise en forme. Si vous le formater à la requête, vous serez de retour d'une chaîne, ce qui rend plus difficile d'échanger les formats de votre front-end dans le futur. Si vous voulez le faire en SQL - découvrez format 107 dans le lien ci-dessus.
OriginalL'auteur Scott Ivey
Pas de panique, juste CONVERTIR. Style "112", ou de l'ISO serait en mesure de gérer votre cas.
retourne
OriginalL'auteur Chris McCall
essayer:
de sortie:
OriginalL'auteur KM.