numéro - sql server row_number over partition by order by




Obtenez le numéro à 2 chiffres pour le mois (8)

J'ai une colonne entière "Mois" Je voudrais obtenir un nombre à 2 chiffres pour le mois.

C'est ce que j'ai essayé: DATEPART (mm, @Date)

Il retourne un chiffre pour les mois de janvier à septembre J'utilise SQL Server 2008

Quelqu'un a une suggestion?


Alternative à DATEPART

SELECT LEFT(CONVERT(CHAR(20), GETDATE(), 101), 2)

CONVERT (char (2), getdate (), 101)


Fonction

FORMAT(date,'MM') 

fera le travail avec deux chiffres.


Ma façon de le faire est:

right('0'+right(datepart(month,[StartDate]),2),2)

La raison de la fonction interanl 'right' est d'empêcher SQL de le faire en tant que math add - ce qui nous laissera encore un chiffre.


Pour moi, la solution la plus rapide était

DATE_FORMAT(CURDATE(),'%m')

Simplement peut être utilisé:

SELECT RIGHT('0' + CAST(MONTH(@Date) AS NVARCHAR(2)), 2)

ajouter 0 avant en vérifiant si la valeur se situe entre 1 et 9 en le convertissant d'abord en varchar

select case when DATEPART(month, getdate()) between 1 and 9 
then '0' else '' end + cast(DATEPART(month, getdate()) as varchar(2))

il y a différentes façons de le faire

  • Utilisation de RTRIM et spécification de la plage :

comme

SELECT RIGHT('0' + RTRIM(MONTH('12-31-2012')), 2); 
  • Utilisation de la sous- chaîne pour extraire la partie du mois après la conversion de la date en texte

comme

SELECT SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)

voir Fiddle

Il peut y avoir d'autres façons d'obtenir cela.







tsql