web-dev-qa-db-fra.com

Convertir la date aaaa-mm-jj en entier YYYYMM

Comment puis-je convertir @dateb:

SET @dateb = dateadd(month, datediff(month, 0, getdate()) - 3, 0)

qui renvoie 2014-04-04 comme date à un entier de 201404

Merci

17
Maria Sinding-Olsen

Sur la version 2012 ou supérieure, vous pouvez utiliser la fonction format pour obtenir uniquement l'année et le mois, puis la convertir en entier.

Sur les versions antérieures à 2012, vous pouvez effectuer le formatage avec la fonction convert , puis convertir en int.

declare @dateb datetime
set @dateb = getdate()

select cast(format(@dateb,'yyyyMM') as int) --2012 or higher
select cast(convert(varchar(6),@dateb,112) as int) -- all versions
20
Bob Klimes

Peut-être un peu plus ordonné:

SELECT YEAR(@dateb)*100 + MONTH(@dateb);
14
Aaron Bertrand