SQL Server a-t-il une fonction Date_Format?


8

Tout ce que j'ai trouvé est une liste de prédéfinis DateFormatque je peux choisir, comme ceci

Comme je m'en souviens dans MySQL (et PostgeSQL aussi?), Vous pouvez définir votre format de date:

DATE_FORMAT(now(),'&m_%Y') --for 02_2012 etc.

SQL Server a-t-il la même chose? Je vois que les gens doivent écrire une fonction pour faire une telle chose, a-t-elle une fonction intégrée?


ÉDITER:

Je viens de trouver la DatePartfonction. Il peut prendre le mois comme nombre, mais renvoie toujours 1 chiffre, même si j'utilise datePart(MM, getdate())



1
En règle générale, le formatage doit être géré par le client et non par la base de données. Cela étant dit, si vous devez formater la sortie de la base de données, Martin Smith a déjà fourni des options.
JSR

Réponses:


16

Pas encore.

Vous devez utiliser CONVERTun paramètre de style ou pirater quelque chose avec DATEPARTou DATENAME.

SQL Server 2012 aura cependant la FORMATfonction qui accepte une chaîne de format .NET Framework

Syntaxe:

FORMAT ( value, format [, culture ] )

Exemple d'utilisation

SELECT FORMAT(getdate(), 'dd/MM/yyyy', 'en-US' ) 

Vous pouvez toujours utiliser l'intégration CLR et créer votre propre UDF qui fait la même chose pour 2005 ou 2008.


Ahhh, 2012! Eh bien, je suppose que j'écrirai un UDF comme vous l'avez dit. Merci
King Chan

Ce sera génial.
Gordon Bell

1
@KingChan et Martin: Concernant l'utilisation de SQLCLR pour accomplir cela dans SQL Server 2005/2008/2008 R2, il y a toujours la possibilité de télécharger la version gratuite de SQL # (dont je suis l'auteur, mais Date_Format est gratuit) et alors il n'est pas nécessaire de faire de codage. J'ai quelques exemples des deux SQL#.Date_Formatet de la FORMATréponse intégrée à cette SO: Existe - t-il un moyen d'obtenir des dates avec des formats personnalisés dans SQL Server? :-)
Solomon Rutzky

0

Si votre objectif est simplement une sortie formatée et qu'il n'a pas besoin de rester dans le type de données datetime, l'utilisation de CONVERT avec un code de format est un excellent outil. Une liste des formats et de leurs codes respectifs peut être trouvée ici: http://msdn.microsoft.com/en-us/library/ms187928.aspx

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.