Вопрос:

Обновить поле с помощью Hardcore и вычисляемого поля в TSQL

sql-server tsql

18 просмотра

1 ответ

49 Репутация автора

Я работаю над программой, в которой после X произойдет дата первого июля следующего года.

UPDATE dbo.PAY_paymentDetails 
SET nextPayment = CASE 
                     WHEN DATEPART(MONTH, dateMade) < 7 
                          AND DATEPART(YEAR, dateMade) = DATEPART(YEAR, GETDATE()) 
                        THEN DATEPART(YEAR, DATEADD(YEAR, 1, GETDATE())) 
                     ELSE DATEPART(YEAR, GETDATE() + 1) 
                  END

Поэтому я добавляю год к текущему году, используя

SELECT DATEPART(YEAR,DATEADD(YEAR,1,GETDATE())

и это приводит к 2017 году, но я не могу понять, как манипулировать моим TSQL, так что дайте мне 2017-07-01

Автор: Grace Источник Размещён: 22.08.2016 09:48

Ответы (1)


0 плюса

1439 Репутация автора

Решение

В настоящее время вы выбираете только год из функции datepart. Если вы делаете что-то вроде

SELECT CAST(CAST(DATEPART(YEAR, DATEADD(YEAR, 1, GETDATE())) AS VARCHAR) + '-' + CAST(DATEPART(MONTH,DATEADD(YEAR, 1, GETDATE())) AS VARCHAR) + '-' + CAST(DATEPART(DAY, DATEADD(YEAR, 1, GETDATE())) AS VARCHAR) AS DATE)

тогда вы получите то, что ищете. Не самый красивый взломать, но это работает. Надеюсь, это поможет..

Автор: StelioK Размещён: 22.08.2016 10:08
Вопросы из категории :
32x32