的日期/時間,我有一個日期時間字段在SQL Server中有這樣的價值2005表:格式化SQL Server 2005中
2012-04-23 09:00:00.000
2012-04-23 14:00:00.000
的分,秒,和毫秒始終爲零。
我需要顯示這樣的「時間段」(基本上,時間加一小時):我需要用這個
2012/04/23 09:00 AM - 10:00 AM
2012/04/23 02:00 PM - 03:00 PM
我:
SELECT SUBSTRING(CONVERT(VARCHAR, TimeSlot, 20), 1, 10) + ' ' +
RIGHT('00000' + LTRIM(SUBSTRING(CONVERT(VARCHAR(24), TimeSlot, 109), 13, 5)), 5) + ' ' +
SUBSTRING(CONVERT(VARCHAR(19), TimeSlot, 100),18,2) + ' - ' +
RIGHT('00000' + LTRIM(SUBSTRING(CONVERT(VARCHAR(24), DATEADD(hh, 1, TimeSlot), 109), 13, 5)), 5) + ' ' +
SUBSTRING(CONVERT(VARCHAR(19), DATEADD(hh, 1, TimeSlot), 100), 18, 2) AS TimeSlot
FROM MyTable
它的工作原理,但我覺得很骯髒。
我知道我能做到這一點的代碼(VB .NET)更容易,但假設我必須這樣做,在SQL。
有沒有清潔的方式做到這一點?
謝謝...您的解決方案几乎讓我有,但更重要的是確認沒有真正優雅的方式來做到這一點。 – aphoria 2012-04-27 19:57:56
通常你只是通過日期,然後它是你的客戶端/服務器端處理它,讓你更好地控制輸出,並有一個功能或過程,可以在你的應用程序的其他領域重用... – balexandre 2012-04-28 07:09:44
我同意。我應該澄清,在SQL中沒有一種真正優雅的方式來實現這一點。 – aphoria 2012-04-28 14:29:06