2011-11-07 2 views
1

Je voudrais que ma date soit AAAA-MM-JJ (JJ-MM-AAAA), je n'arrive pas à convertir en ce formulaire. J'ai déjà regardé CAST and Convert T-SQL.Date de création dans SQL

En règle générale, puis-je formater la date en fonction de mes besoins tels que DD-MM (YEAR) etc Vous pouvez facilement le faire dans MYSQL.

SELECT GETDATE() // start with this query 

BTW Stackoverflow recherche est pas bon. Je ne peux pas trouver une question similaire dans les questions 2M +.

+0

En réponse générale, ne sont pas de format dans SQL, faire la mise en forme de votre côté avant, rédacteur du rapport, etc. – onedaywhen

Répondre

1

Pour obtenir la date sans le temps:

--char(10) limits the length to 10 characters thereby removing the time stamp 
SELECT CONVERT(char(10), GetDate(),126) -- Output: 2011-11-07 

Pour obtenir la date avec l'horodatage:

SELECT CONVERT(VARCHAR, GetDate(), 126) --Output: 2011-11-07T13:42:25.913 

Voir MSDN docs pour tous les formats possibles.

+0

Et puis-je mettre en forme BTW en fonction de mes besoins comme JJ-MM (AAAA) –

+0

Votre question dit que vous voulez «AAAA-MM-DD», n'est-ce pas? –

+0

Maintenant, j'en ai la logique, avec varchar (10), le reste des données est ignoré. Quelqu'un aurait dû expliquer que :) –

0

Essayez Format 120:

SELECT CONVERT(VARCHAR, GETDATE(), 120) -- result: 2011-11-07 13:48:45 

Si vous voulez tronquer cette façon que la partie date est renvoyée, spécifiez une contrainte de taille sur la conversion VARCHAR:

SELECT CONVERT(VARCHAR(10), GETDATE(), 120) -- result: 2011-11-07 
+0

Mauvais Je suppose que vous savez pourquoi lol –

+0

En fait, le format '120' est meilleur, je pense. –

0
SELECT CONVERT(VARCHAR(19), GETDATE(), 120) /*YYYY-MM-DD HH:MI:SS(24h)*/ 

SELECT CONVERT(VARCHAR(23), GETDATE(), 126) /*YYYY-MM-DDTHH:MM:SS:MMM*/ 

SELECT CONVERT(VARCHAR(10), GETDATE(), 102) AS [YYYY.MM.DD] 

SELECT CONVERT(VARCHAR(10), GETDATE(), 111) AS [YYYY/MM/DD] 
0

C'est Certainement pas l'option la plus rapide, mais elle correspond à ce que vous avez demandé et pourrait être utile à quelqu'un d'autre à l'avenir.

DECLARE @date DATETIME 
SET @date = GETDATE() 
SELECT CAST(DATEPART(YYYY, @date) AS NVARCHAR(4)) + '-' 
+ CAST(DATEPART(MM, @date) AS NVARCHAR(2)) + '-' 
+ CAST(DATEPART(DD, @date) AS NVARCHAR(2)) + ' (' 
+ CAST(DATEPART(DD, @date) AS NVARCHAR(2)) + '-' 
+ CAST(DATEPART(MM, @date) AS NVARCHAR(2)) + '-' 
+ CAST(DATEPART(YYYY, @date) AS NVARCHAR(4)) + ')' 

Il produit:

2011-11-7 (7-11-2011)