MSSQL изменяет возвращаемое значение, только если оно передает выражение Boolean_expression - PullRequest
1 голос
/ 25 августа 2011

Я хочу сделать что-то вроде этого

SELECT (if T.EndTime = '00:00:00' THEN '23:59:59' ELSE T.EndTime) AS EndTime from Table AS T

я знаю, что решение должно быть простым, но я просто не могу найти, чтобы заставить его работать

Ответы [ 4 ]

0 голосов
/ 25 августа 2011

Если столбец T.EndTime имеет тип данных DateTime, вы можете сначала преобразовать значение в строку.Итак, запрос будет примерно таким.Значение 8 , используемое в функции Convert, возвращает дату и время в формате hh:mi:ss.Список форматов для преобразования или преобразования можно найти на веб-сайте MSDN .

SELECT  CASE 
            WHEN CONVERT(VARCHAR, T.EndTime, 8) = '00:00:00' THEN '23:59:59'
            ELSE T.EndTime
        END
FROM    dbo.TableData T
.
0 голосов
/ 25 августа 2011

Вы хотите СЛУЧАЙ:

http://msdn.microsoft.com/en-us/library/ms181765.aspx

SELECT
   CASE T.EndTime
      WHEN '00:00:00' THEN '23:59:59'
      ELSE T.EndTime
   END
FROM ...
0 голосов
/ 25 августа 2011
SELECT 
      CASE EndTime
         WHEN '00:00:00' THEN '23:59:59'
         ELSE EndTime
      END
0 голосов
/ 25 августа 2011

CASE - это то, что вы ищете:

SELECT (CASE WHEN T.EndTime = '00:00:00' 
             THEN '23:59:59' 
             ELSE T.EndTime END) AS EndTime 
from Table AS T
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...