Je dois accéder uniquement au champ Month.Year à partir de la date dans SQL Server.
Je dois accéder uniquement au champ Month.Year à partir de la date dans SQL Server.
Réponses:
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 `` écarter '' les jours, les heures, etc.
- Laisser un an / mois seul champ de date
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 se situe.
REMARQUE: dans SQL Server 2008, vous aurez toujours l'HEURE attachée en tant que 00: 00: 00.000. Ce n'est pas exactement la même chose que "supprimer" toute notation de jour et d'heure complètement. Le jour est également réglé sur le premier. par exemple 2009-10-01 00: 00: 00.000
select month(dateField), year(dateField)
SELECT convert(varchar(7), getdate(), 126)
Vous voudrez peut-être consulter ce site Web: http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
SELECT DATEPART(yy, DateVal)
SELECT DATEPART(MM, DateVal)
SELECT DATENAME(MM, DateVal)
datename(m,column)+' '+cast(datepart(yyyy,column) as varchar) as MonthYear
la sortie ressemblera à: «Décembre 2013»
Il existe 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.
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 n'avez besoin que du mois et de l'année séparément, 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 souhaitez afficher à partir d'une date donnée, par exemple '2009-11-24 09:01:55.483'
au format MONTH.YEAR . Donc, la sortie devrait être11.2009
dans ce cas.
Si c'est censé être le cas, essayez ceci (parmi d'autres alternatives)
select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')
RIGHT(CONVERT(VARCHAR(10), reg_dte, 105), 7)
Essaye ça:
Portugais
SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'pt-pt') + ' ' + convert(varchar(10),year(getdate()),100)
Résultat: maio 2019
Anglais
SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'en-US') + ' ' + convert(varchar(10),year(getdate()),100)
Résultat: mai 2019
Si vous voulez dans une autre langue, remplacez " pt-pt " ou " en-US " par l'un de ces éléments dans le lien
J'avais une exigence spécifique pour faire quelque chose de similaire où il afficherait mois-année, ce qui peut être fait de la manière suivante:
SELECT DATENAME(month, GETDATE()) + '-' + CAST(YEAR(GETDATE()) AS nvarchar) AS 'Month-Year'
Dans mon cas particulier, je devais l'avoir à l'abréviation de mois de 3 lettres 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'
Ma base de données ne prend pas en charge la plupart des fonctions ci-dessus, mais j'ai trouvé que cela fonctionne:
SELECT * FROM table WHERE SUBSTR(datetime_column, starting_position, number_of_strings)=required_year_and_month;
par exemple:
SELECT SUBSTR(created, 1,7) FROM table;
renvoie l'année et le mois au format "aaaa-mm"
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))
SELECT REPLACE(RIGHT(CONVERT(VARCHAR(11), GETDATE(), 106), 8), ' ', '-')
Sortie: Mar-2019
Requete :- Select datename(m,GETDATE())+'-'+cast(datepart(yyyy,GETDATE()) as varchar) as FieldName
Sortie: - Janvier-2019
champ de date général que nous pouvons utiliser
datename(m,<DateField>)+' '+cast(datepart(yyyy,<DateField>) as varchar) as FieldName
Pour le résultat: "AAAA-MM"
SELECT cast(YEAR(<DateColumn>) as varchar) + '-' + cast(Month(<DateColumn>) as varchar)
select convert(varchar(11), transfer_date, 106)
m'a obtenu le résultat souhaité de la date au format 07 mars 2018
Ma colonne 'transfer_date' est une colonne de type datetime et j'utilise SQL Server 2017 sur Azure
sélectionnez CONCAT (MONTH (GETDATE ()), '.', YEAR (GETDATE ()))
Sortie: 5.2020
sélectionnez CONCAT (DATENAME (MONTH, GETDATE ()), '.', YEAR (GETDATE ()))
Sortie: mai 2020