2013-03-27 165 views
0

SQL不支持歐洲格式的dd/mm/yy hh:mm,有什麼方法可以創建一個嗎?我想在存儲過程返回它像這樣:自定義SQL日期時間格式

ALTER PROCEDURE dbo.GetMeetingByCustomerID 
    @CustomerID nvarchar(50), 

AS 

    SELECT ProfessionalID, MeetingDate, Cost, HasReview, Approved 
    FROM  Meeting 
    WHERE (CostumerID = @CostumerID) 
    ORDER BY MeetingDate ASC 
    RETURN 

唯一的問題是,它返回它的格式不正確。 有沒有辦法創建一個新的? 謝謝。編輯: 我解決了這個問題。我做的是:

MeetingDate = DateTime.Parse(Meetings.Tables[0].Rows[i][1].ToString()); 
       string d = MeetingDate.ToString("hh:mm dd/MM/yy");   
+4

在SQL爲什麼這樣做?在應用程序中執行。什麼版本的SQL Server(我假設這就是你使用的)? – Oded 2013-03-27 21:28:10

+0

以任何你喜歡的格式將它作爲TO_CHAR返回。 – Randy 2013-03-27 21:29:25

+1

同意Oded。返回實際日期,並在應用程序中對其進行格式化。 – 2013-03-27 21:29:45

回答

1

首先,我認爲在SELECT請求中格式化日期/時間是不正確的。但是,如果你真的需要它,使用CAST/CONVERT(如果您使用MS SQL),並刪除未使用的符號,如:

SELECT ProfessionalID, CONVERT (varchar(5), MeetingDate, 108) AS MeetingDateString, Cost, HasReview, Approved 
FROM  Meeting 
WHERE (CostumerID = @CostumerID) 
ORDER BY MeetingDate ASC 
+0

你會想要別名'CONVERT'的結果。 – 2013-03-27 21:39:57

+0

我該如何在應用程序中做到這一點?即時通訊使用C#和asp.net – 2013-03-27 21:46:49

+0

@MichaelSallmen,是的,一個別名應該在那裏。我確定了我的答案。 Htusa,格式化取決於您要代表此信息的控件類型。我建議訪問http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx以獲取有關格式的一般信息日期/時間在C#中 – 2013-03-28 05:43:33