I have 4 CTE’s in this table and the third one contains a DATETIME converted to VARCHAR (with format based on the requirement) as startDate in DD/MM/YYYY format. The last cte does calculations based on the data generated and one of the columns needs to store YYYYMM date based on startDate.
The problem it’s getting the year and the month from this converted DATETIME, using convert() it shows this:
IDPER ------- 01/01/ --DD/MM/
These 2 show YYYYMM correctly when startDate isn’t converted:
Select *, left(convert(nvarchar(6),new_ini,112),6) as IDPER from table Select *, convert(nvarchar(6),new_ini,112) as IDPER from table
How could I get YYYYMM format having startDate converted? Or what could be a more smart approach to the requirement
Advertisement
Answer
My way would be slightly different
SELECT CONVERT(NVARCHAR(6), CONVERT(DATE, new_ini, 103), 112);
Here, I first converted it to date and then formatted to YYYYMMDD and taken 6 chars only