Сравните два поля даты и времени в операторе выбора - TSQL - PullRequest
0 голосов
/ 09 января 2020

У меня есть sql запрос выбора:

declare @godina as integer = 2020

select 

vtRokSi.KodSI, 
vtRokSi.rKod,
vtRokSi.rDatum, 
vtRokSi.rDatumZavr,
CONVERT(datetime, vtRokSi.rDatum) as docni
-- if CONVERT(datetime, vtRokSi.rDatum) > vtRokSi.rDatumZavr
-- select 'docni' as docni
-- else if CONVERT(datetime, vtRokSi.rDatum) <= vtRokSi.rDatumZavr
-- select 'ne docni' as docni
-- else if vtRokSi.rDatumZavr
-- select 'nema vneseno'

from GP.dbo.VT_ROK_SI as vtRokSi

where vtRokSi.GodGP = @godina

, где вы можете видеть, что я пытаюсь сравнить два столбца. vtRokSi.rDatum имеет тип date, а vtRokSi.rDatumZavr имеет тип datetime. Я конвертирую vtRokSi.rDatum в дату и время.

Я хочу напечатать несколько значений в столбце 'docni', например, строка 'nema vneseno', если vtRokSi.rDatumZavr равен нулю, 'docni', если vtRokSi.rDatum больше, чем vtRokSi.rDatumZavr, ' ne docni ', если vtRokSi.rDatum меньше или равен vtRokSi.rDatumZavr.

Как мне сделать это в том же операторе select?

Или мне понадобится что-то более мощное, то есть отделить командовать несколькими другими?

1 Ответ

0 голосов
/ 09 января 2020

Вы можете использовать выражение CASE.

...
CASE
  WHEN vtroksi.rdatum > vtroksi.rdatumzavr THEN
    'docni'
  WHEN vtroksi.rdatum <= vtroksi.rdatumzavr THEN
    'ne docni'
  ELSE
    'nema vneseno'
END docni
...
...