#sql-server #sql-server-2008
#sql-сервер #sql-server-2008
Вопрос:
Я ищу, чтобы преобразовать следующую дату
select (CONVERT(varchar(11), DATEADD(year, 1,CONVERT(varchar(11), getdate(),111)))),datename(month,getdate()) for it returns 'jun 26 2015' ,'JUne'
Мне нужно было, чтобы он возвращался как следующий «2015/6», июнь
Это дает мне то, что я хочу, при использовании просто get date
select CONVERT(varchar(7), getdate(), 111) = 2014/06
но мне это нужно 1 год в моем поле ожидания времени.
Мой фактический код выглядит следующим образом:
SELECT c.account_owner_by_SalesDiv, CONVERT(varchar(7), a.timeWait, 111)as rollingdate, DATENAME(MOnth, a.timeWait)
FROM SalesForce.dbo.SalesForceContact AS b INNER JOIN
Dossier_Replication.dbo.vw_SFAD_Contact_data AS c ON b.ContactID = c.CONTACTID__C RIGHT OUTER JOIN
satVRS.dbo.rptNECACallHistory AS a ON b.UserID = a.UserID_Caller
WHERE (b.Platform = 'HandsonVRS') AND (a.timeWait BETWEEN CONVERT(varchar(10), DATEADD(year, - 1, CONVERT(varchar, DATEADD(month, DATEDIFF(month, 0,
GETDATE()-1), 0), 120)), 120) AND CONVERT(varchar, DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0), 101)) AND (a.isReport = '1') AND (a.NECA_isReport = '1') AND
(a.ConvoTime > '0') AND (c.account_owner_by_SalesDiv IN ('Enterprise Account', 'National Account', 'Major Account', 'House Account', 'Inside Sales Account'))
GROUP BY c.account_owner_by_SalesDiv, CONVERT(varchar(7), a.timeWait, 111), DATENAME(MOnth, a.timeWait)
order by rollingdate
Заранее спасибо.
Комментарии:
1. Я бы подумал, что сработает что-то подобное: но мне не удалось скрыть дату строки. выберите (преобразовать(varchar(7),(DATEADD(год, 1,ПРЕОБРАЗОВАТЬ(varchar(7), получить дату(), 111)))))
Ответ №1:
Это дает 2015/06, June
:
SELECT
CONVERT(VARCHAR(7), DATEADD(YEAR,1,GETDATE()), 111) ', ' DATENAME(MONTH,GETDATE())
Если вам не нужен начальный ноль, вы можете использовать функцию SUBSTRING для его обрезки.