Convertir le nom du mois en numéro de mois dans SQL Server
En T-SQL quel est le meilleur moyen de convertir un nom de mois dans un certain nombre?
E. g:
'January' -> 1
'February' -> 2
'March' -> 3
Etc.
Y a des fonctions intégrées qui peuvent le faire?
source d'informationauteur Gary Barrett | 2011-11-29
Vous devez vous connecter pour publier un commentaire.
Comment à ce sujet?
Comment à ce sujet:
Serait de retour
3
.Vous pouvez créer une fonction et vous y référer dans l'instruction select.
La fonction peut ressembler à ceci:
Ensuite, vous pouvez l'interroger.
Cette requête renvoie les 2, comme le numéro du mois.
Vous pouvez transférer des valeurs d'une colonne en tant que paramètres de la fonction.
Une bonne journée!
Il n'est pas construit en fonction de cette.
Vous pouvez utiliser une instruction de CAS:
ou de créer une table de recherche à se joindre à l'encontre de
J'ai récemment eu une expérience similaire (sql server 2012). Je n'ai pas le luxe de contrôler l'entrée, j'ai juste eu l'obligation de faire rapport. Heureusement, les dates ont été saisies avec le leader à 3 caractères alpha mois d'abréviations, de sorte que ce fait simple & rapide:
Il a travaillé pendant 12 heures:
Février-14-2015 5:00:00 PM 2015-02-14 17:00:00.000
et 24 heures:
Sep-27-2013 22:45 2013-09-27 22:45:00.000
(merci ryanyuyu)
Je pense que vous pouvez même avoir une table comme un
monthdetails (Monthno int, monthnames char(15))
et inclure des valeurs:.... et ainsi de suite, puis se joindre à cette table, la table existante dans la
monthnames
colonneVous pouvez le faire de cette façon, si vous avez la date (par exemple SubmittedDate)
Ou vous pouvez le faire de cette façon, si vous avez le mois sous la forme d'un int
Vous pouvez utiliser le code ci-dessous
Je sais que cela peut être un peu trop tard, mais le moyen le plus efficace de le faire par le biais d'un CTE comme suit:
Vous pouvez essayer qqch comme ça, si vous avez month_name qui est une chaîne datetype.Après la conversion, vous pouvez vous sentir libre à l'ordre par Mois.
Par exemple, votre table comme ceci:
Ma syntaxe est: