8
votes

Que faut-il obtenir un numéro à deux chiffres à l'aide de DatePart () dans SQL?

J'essaie d'utiliser DatePart pour renvoyer une heure à deux chiffres. Je voudrais voir 01, 02, 03, ... 10, 11, 12 pour les heures. Comment puis-je faire ceci?

Si je suis entré dans la requête, xxx

alors je reçois la réponse 7 . J'ai besoin d'obtenir une réponse comme 07 .


1 commentaires

Alors pourquoi avez-vous aussi marqué le MySQL?


6 Réponses :


15
votes

Essayez ceci pour mySQL ou de SQL Server 2012 -

select right('0' + DATEPART(hour,'1900-01-01 07:45:00.010'),2)


2 commentaires

Je pense que cela ne fonctionne que avec des chaînes. Le DatePart doit être converti en Varchar.


La version que vous affichez pour les versions de SQL Server avant 2012 est incorrecte. DatePart () retourne toujours int . Vous ne pouvez pas ajouter un int à un char . La déclaration correcte doit être Sélectionner la droite ('0' + CAST (DatePart (heure, '1900-01-01 07: 45: 00.010') As Varchar), 2)



0
votes

dans mysql, xxx

dans MS SQL (je pense - je ne l'utilise pas): xxx


0 commentaires

2
votes

try Format fonction (prise en charge dans SQL Server 2012) - < Pré> xxx


0 commentaires

0
votes

dans MS SQL

select right('0' + DATEPART(hour,'1900-01-01 07:45:00.010'),2)


0 commentaires

8
votes

Je n'ai pas pu obtenir les solutions ci-dessus * à travailler contre SQL Server 2008.

Qu'est-ce qui a fonctionné pour moi était: p> xxx pré>

retourne p>

07


0 commentaires

0
votes

Vous pouvez faire comme ça pour MSSQL;

 RIGHT('0' + RTRIM(DATEPART(dd, date)), 2)


0 commentaires