我想在SQL Server 2008中将两个日期和下面的日期连接在一起。如下所示:
2015-09-09 08:30 - 2015-09-09 09:30
我尝试了这种方法,但没有用,我也使用了铸造。
CONVERT(DATETIME, CONVERT(CHAR(8), S.StartTime, 112)+ '-' + CONVERT(CHAR(8), S.endtime, 108)) AS 'OccupiedTime'
显示结果如此
2015-09-09 09:30:00:000
答案 0 :(得分:3)
CONVERT(CHAR(16), s.StartTime, 120) + '-' +
CONVERT(CHAR(16), s.EndTime, 120) AS OccupiedTime
答案 1 :(得分:1)
您需要2个部分的日期 - 仅限日期+时间。你可以有2个字符串并连接它们:
SELECT
REPLACE(CONVERT(VARCHAR(50),s.StartTime,103),'/','-') + ' ' +
CONVERT(VARCHAR(5),s.StartTime,114) + ' - ' +
REPLACE(CONVERT(VARCHAR(50),s.EndTime,103),'/','-') + ' ' +
CONVERT(VARCHAR(5),s.EndTime,114) AS OccupiedDateTime
您可以快速查看其外观:
SELECT
REPLACE(CONVERT(VARCHAR(50),GETDATE(),103),'/','-') + ' ' +
CONVERT(VARCHAR(5),GETDATE(),114) + ' - ' +
REPLACE(CONVERT(VARCHAR(50),GETDATE(),103),'/','-') + ' ' +
CONVERT(VARCHAR(5),GETDATE(),114) AS OccupiedDateTime
答案 2 :(得分:1)
您可以将SQL转换函数和转换样式参数一起使用,如下所示
declare @StartTime datetime = getdate()
declare @EndTime datetime = getdate()
select convert(varchar(16), @StartTime, 120) + ' - ' + convert(varchar(16), @EndTime, 120)
如果检查代码,我使用了varchar(16),它在转换后删除了不需要的毫秒信息。 有关SQL Server Convert datetime function行动的更多信息,请参阅指定的教程