Format de date aaaa-mm-jj hh:mm:ss.000
J'ai cette date: 7/19/2013
Je veux le formater comme suit:
2013-07-19 00:00:00.000
J'ai essayé ceci:
select convert(varchar(10),'7/19/2013',120)
Mais il me donne le même résultat!
I want to format it as the following: 'yyyy-mm-dd 00:00:00.000'
Vous n'avez pas remarqué que est plus de votre type varchar(10) peut tenir, non?
Vous devez vous connecter pour publier un commentaire.
Vous devez dire à SQL Server, il est un rendez-vous; sinon, il voit juste une chaîne de caractères, et ignore le numéro de style puisqu'il n'est pas pertinent pour une chaîne de caractères. Comme Steve Kass a souligné, le code n'est vraiment portable si vous protéger la future chaîne de la mauvaise régionale ou linguistique des traductions (comme
d/m/y
qui pourrait conduire à une erreur ou, pire encore, le mal de données). J'ai mis à jour le code pour interpréter la chaîne commem/d/y
indépendamment de la région, mais si vous êtes sur SQL Server 2012, vous pourriez aussi utiliserPARSE()
comme dans son exemple (ouTRY_PARSE()
si vous voulez essentiellement ignorer dates non valides).Et si vous voulez le temps fixé, y compris millisecondes, vous avez besoin pour permettre à plus de 10 caractères, et un style qui prend en charge millisecondes.
Résultat:
Si vous n'avez pas de soins sur les millisecondes, vous pouvez utiliser le style de 120 à la place:
Et si vous n'avez pas de soins sur les secondes, vous pouvez tronquer plus tôt:
Noter que Aaron solution échouera si le serveur est localisé à une langue avec DMY que le format de la date. C'est parce que l'intérieur de CONVERTIR à Aaron exemple d'intégrer le serveur local, ce qui peut ne pas être ce que vous attendez.
Pour faire de cette épreuve des balles (en supposant que la source de la chaîne n'a pas automatiquement re-localiser le format), de convertir la chaîne de caractères à ANALYSER (nécessite SQL Server 2012 ou plus tard).
105
sur le intérieurCONVERT
.101
, désolé.De les ajouter à votre requête, vous pouvez simplement ajouter les Zéros/les caractères que vous voulez :)...
Résultat: