отображение даты в формате периода - PullRequest
0 голосов
/ 29 июня 2011

У меня есть следующая таблица со значениями, указанными ниже. У меня есть метка, которая показывает дату из таблицы. Для первой даты она должна отображаться как 07.06.2011, а со второй даты она должна отображаться в следующем формате, любой поможет мне ..

«Этикетка: с 07.07.2011 по 13.07.2011»,

ID  Date                  
==  ==========
63  07/06/2011         
64  07/13/2011         
65  07/20/2011         
66  07/27/2011         
67  08/03/2011   

Ответы [ 2 ]

1 голос
/ 29 июня 2011

Попробуйте это:

WITH qry AS
(
    SELECT a.*,
           ROW_NUMBER() OVER(ORDER BY Date) rn
      FROM MyTable a
)
SELECT a.Id,
       CASE 
        WHEN b.Id IS NULL THEN CONVERT(VARCHAR, a.Date, 101) 
        ELSE 'Label: ' + 
              CONVERT(VARCHAR, b.Date + 1, 101) + 
              ' to ' + 
              CONVERT(VARCHAR, a.Date , 101) 
       END AS Date
  FROM qry a LEFT JOIN qry b
    ON a.rn  = b.rn+1

Настройка таблицы:

CREATE TABLE MyTable (ID INT, DATE DATETIME)
INSERT INTO MyTable VALUES(63,'07/06/2011');
INSERT INTO MyTable VALUES(64,'07/13/2011');
INSERT INTO MyTable VALUES(65,'07/20/2011');
INSERT INTO MyTable VALUES(66,'07/27/2011');
INSERT INTO MyTable VALUES(67,'08/03/2011');

Результаты:

Id  Date
63  07/06/2011
64  Label: 07/07/2011 to 07/13/2011
65  Label: 07/14/2011 to 07/20/2011
66  Label: 07/21/2011 to 07/27/2011
67  Label: 07/28/2011 to 08/03/2011
0 голосов
/ 29 июня 2011

В зависимости от формата дня / месяца вы можете попробовать:

SELECT 
CONVERT(VARCHAR, [date] , 4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...