的日期/时间,我有一个日期时间字段在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