J'ai besoin d'accéder uniquement à Month.Year à partir du champ Date dans SQL Server.
En plus des suggestions déjà données, il y a une autre possibilité que je peux déduire de votre question:
- Vous voulez toujours que le résultat soit une date
- Mais vous voulez "jeter" les jours, les heures, etc.
- Laisser un champ de date année/mois seulement
SELECT
DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
<your_table>
Cela obtient le nombre de mois entiers à partir d'une date de base (0), puis les ajoute à cette date de base. Arrondissant ainsi au mois dans lequel la date est en.
Remarque: dans SQL Server 2008, l'heure restera attachée en tant que 00: 00: 00.000 Ce n'est pas exactement la même chose que "supprimer" toute indication de jour et d'heure ... premier. par exemple. 2009-10-01 00: 00: 00.000
select month(dateField), year(dateField)
SELECT DATEPART(yy, DateVal)
SELECT DATEPART(MM, DateVal)
SELECT DATENAME(MM, DateVal)
SELECT convert(varchar(7), getdate(), 126)
Vous pouvez consulter ce site: http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
datename(m,column)+' '+cast(datepart(yyyy,column) as varchar) as MonthYear
le résultat ressemblera à: 'décembre 2013'
Il y a deux fonctions SQL pour le faire:
Reportez-vous à la documentation liée pour plus de détails.
écrivons-le de cette façon: YEAR(anySqlDate)
et MONTH(anySqlDate)
. Essayez-le avec YEAR(GETDATE())
par exemple.
Cela peut être utile aussi.
SELECT YEAR(0), MONTH(0), DAY(0);
ou
SELECT YEAR(getdate()), MONTH(getdate()), DAY(getdate());
ou
SELECT YEAR(yourDateField), MONTH(yourDateField), DAY(yourDateField);
convert(varchar(7), <date_field>, 120)
because 120 results in 'yyyy-MM-dd' which is varchar(10)
using varchar(7) will display only year and month
example:
select convert(varchar(7), <date_field>, 120), COUNT(*)
from <some_table>
group by convert(varchar(7), <date_field>, 120)
order by 1
J'interprète votre question de deux manières.
a) Vous avez seulement besoin d'un mois et d'une année séparés, auquel cas voici la réponse
select
[YEAR] = YEAR(getdate())
,[YEAR] = DATEPART(YY,getdate())
, [MONTH] = month(getdate())
,[MONTH] = DATEPART(mm,getdate())
,[MONTH NAME] = DATENAME(mm, getdate())
b)
Vous voulez afficher à partir d'une date donnée, dites '2009-11-24 09:01:55.483'
dans MONTH.YEAR format. Donc, la sortie devrait venir comme 11.2009
dans ce cas.
Si cela est supposé être le cas, essayez ceci (parmi d'autres alternatives)
select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')
CONCAT (datepart (yy, DATE), FORMAT (DATE, 'MM'))
vous donne par exemple 201601 si vous voulez un résultat à six chiffres
RIGHT(CONVERT(VARCHAR(10), reg_dte, 105), 7)
Certaines bases de données telles que MS Access
ou RODBC
peuvent ne pas prendre en charge les fonctions SQL SERVER
, mais vous pouvez le faire pour toute base de données comportant la fonction FORMAT
:
SELECT FORMAT(<your-date-field>,"YYYY-MM") AS year-date FROM <your-table>
Essaye ça
select to_char(DATEFIELD,'MON') from YOUR_TABLE
par exemple.
select to_char(sysdate, 'MON') from dual
SELECT REPLACE(RIGHT(CONVERT(VARCHAR(11), GETDATE(), 106), 8), ' ', '-')
Sortie: mars-2019
Pour le résultat: "AAAA-MM"
SELECT cast (YEAR () comme varchar) + '-' + cast (Month () comme varchar)
select convert (varchar (11), transfer_date, 106)
m'a obtenu mon résultat souhaité de date au 07 mars 2018
Ma colonne 'transfer_date' est une colonne de type date-heure et j'utilise SQL Server 2017 sur Azure.
Obtenir le mois et l'année à partir de la date
DECLARE @lcMonth nvarchar(10)
DECLARE @lcYear nvarchar(10)
SET @lcYear=(SELECT DATEPART(YEAR,@Date))
SET @lcMonth=(SELECT DATEPART(MONTH,@Date))
Requête: - Sélectionnez le nom de date (m, GETDATE ()) + '-' + cast (datepart (yyyy, GETDATE ()) en tant que varchar) en tant que FieldName
Sortie: - janvier-2019
datefield général, nous pouvons utiliser datename (m,) + '' + cast (datepart (yyyy,) as varchar) as FieldName
Essaye ça:
SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'pt-pt') + ' ' + convert(varchar(10),year(getdate()),100)
Résultat:
maio 2019
Si vous voulez dans une autre langue, remplacez ' pt-pt ' par l'un de ceux-ci dans link
J'avais une exigence spécifique à faire quelque chose de similaire où il montrerait mois-année qui peut être fait par ce qui suit:
SELECT DATENAME(month, GETDATE()) + '-' + CAST(YEAR(GETDATE()) AS nvarchar) AS 'Month-Year'
Dans mon cas particulier, il me fallait une abréviation de 3 lettres par mois avec une année à 2 chiffres ressemblant à ceci: SELECT LEFT(DATENAME(month, GETDATE()), 3) + '-' + CAST(RIGHT(YEAR(GETDATE()),2) AS nvarchar(2)) AS 'Month-Year'