la conversion de date JJ-MMM-AAAA

Je suis l'aide de ligne de code suivante dans SQL:

REPLACE(CONVERT(VARCHAR(11),getdate(),106), ' ','-') 

pour convertir une date à MMM-DD-YYYY format, ce code fonctionne parfaitement bien si la date actuelle est plus que 10.

Mais j'obtiens une erreur lors de sa tente de le convertir à un seul chiffre de la date, de l'e.g quand je suis à la conversion de date 9 jan 2014. Il est converti Jan--9-2014.

Qui est en fait mal comme sa contenir un extra -.

Merci de m'aider à résoudre ce problème.

  • Pourquoi avez-vous stocker de la datetime comme une chaîne de caractères à tous?
  • Juste au cas où, que si vous utilisez remplacer les espaces doubles espaces avant de remplacer les espaces par des tirets?
  • Mais il fonctionne très bien pour 9 jan 2014 ici?
  • montrant que la date correcte lors de l'exécution.. sélectionnez REMPLACER(CONVERT(VARCHAR(11),getdate(),106), ' ','-') montre 08-Jan-2014 date du jour ici..
  • sauf pour la question de l'auteur s'attend à ce premier mois, pas le jour. Et il veut aussi le jour d'un chiffre si c'est dans la gamme de 1 à 9
  • sélectionnez REMPLACER(cast(getDate() varchar(11)), ' ','-') retourne Jan--8-2014 vérifier si vous êtes à l'aide de plâtre ou de convertir..
  • Oui, vous avez raison. Désolé
  • Est-ce répondre à votre question? Comment obtenir un particulier de format de date ('jj-MMM-aaaa") dans la requête SELECT de SQL Server 2008 R2

InformationsquelleAutor Abhijeet | 2014-01-09