2011-06-29 145 views
0

我有下表中提到的值,下面有一個表格。我有一個標籤,它顯示了表格中的日期,第一個日期應該顯示爲07/06/2011和第二個日期應顯示如下格式,任何一個可以幫助我..以句點格式顯示日期

「標籤:07/07/2011至2011年7月13日」,

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

你想返回該字符串的查詢?如果是這樣,那麼爲什麼這2個日期呢? –

+1

你的問題不太清楚... – PedroC88

回答

1

試試這個:

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

+1,起初我以爲你的查詢是錯誤的,輸出看起來很奇怪。然而,在再次閱讀這個問題之後,你似乎擁有了作品想要的東西。 –

+0

感謝Dude ..它的工作正常。 – catherin

+0

嗨...上面的行號的代碼只能在sql server 2005中工作,而不能在sql server 2000中工作。請幫助我。 – catherin

0

根據YOUT日/月格式,你可以嘗試:

SELECT 
CONVERT(VARCHAR, [date] , 4)