2009-11-09 3 views
4

Comment puis-je obtenir le jour de la semaine (au format ddd, donc lun, mar, etc.) dans SQL? Je ne vois rien à ce sujet dans le CAST et CONVERT documentation ..Formats de date SQL Server - ddd

Répondre

12

De nombreuses façons de le faire, voici un moyen:

SELECT LEFT(DATENAME(dw, GETDATE()), 3) 
3

Vous pourriez utiliser e DATENAME méthode pour extraire le jour et ensuite utiliser le SUBSTRING pour prendre seulement les 3 premiers caractères.

SELECT SUBSTRING(DATENAME(DW, '09/11/2009'), 1, 3) 
1

Vous ne pouvez pas ddd hors de la boîte, mais vous pouvez faire toute la journée

par exemple

select datename(weekday,getdate())

retours lundi 'et vous pouvez simplement prendre les 3 premières lettres.

3

J'utiliser
SELECT CONVERT(CHAR(3),DATENAME(weekday,GETDATE()))
afin d'éviter d'utiliser une autre fonction dans le SQL, la conversion à un CHAR (3) prend implicitement les 3 premiers caractères.

Jonathan

1

Pour SQL Server 2012+:

SELECT FORMAT(GETUTCDATE(),'ddd') AS ShortDayName 

Ceci est beaucoup plus propre qu'une solution de sous-chaîne. La fonction FORMAT() peut également être passée une culture pour le formatage conscient des paramètres régionaux.

Notez que cela fonctionne pour d'autres parties de date, comme le mois:

SELECT FORMAT(GETUTCDATE(),'MMM') AS ShortMonthName 

FORMAT() Reference

+1

Je ne manquerai pas de le vérifier quand je suis enfin sur SQL 2012! Peut-être avant 2020 – Nick