SQL选择HH:MM-HH:MM
我正在尝试编写一个SQL查询,该查询将返回当前时间,如下所示:SQL选择HH:MM-HH:MM,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在尝试编写一个SQL查询,该查询将返回当前时间,如下所示: SELECT TOP (30) DATEADD(HOUR, DATEDIFF(HOUR, 0, QUEUE_TIME.QueueDate), 0) AS 'DateAdded', CAST(CONVERT(VARCHAR(2), DATEPART(HH, QUEUE_TIME.QueueDate), 108) AS VARCHAR(2)) + ' - ' + CAST(CONVERT(VARCHAR(2)
SELECT TOP (30)
DATEADD(HOUR, DATEDIFF(HOUR, 0, QUEUE_TIME.QueueDate), 0) AS 'DateAdded',
CAST(CONVERT(VARCHAR(2), DATEPART(HH, QUEUE_TIME.QueueDate), 108) AS VARCHAR(2)) + ' - ' +
CAST(CONVERT(VARCHAR(2), DATEPART(HH, QUEUE_TIME.QueueDate), 108) + 1 AS VARCHAR(2)) AS Interval,
QUEUE_TYPE.Name, QUEUE_TIME.QueueTypeId,
MAX(QUEUE_TIME.QueuedTimeInSec / 60) AS 'WaitingTimeInSec',
CAST(ROUND(AVG(QUEUE_TIME.FlowRateWhenJoinedPerMin), 1) AS numeric(36, 2)) AS AvgFlowRate
FROM
QUEUE_TIME
INNER JOIN
QUEUE_TYPE ON QUEUE_TIME.QueueTypeId = QUEUE_TYPE.Id
WHERE
(QUEUE_TIME.QueueDate >= '11/07/2014 00:00')
AND (QUEUE_TIME.IsFreeFlowing = '0')
AND (QUEUE_TIME.QueueTypeId = '3')
GROUP BY
DATEADD(HOUR, DATEDIFF(HOUR, 0, QUEUE_TIME.QueueDate), 0),
DATEPART(HOUR, QUEUE_TIME.QueueDate), QUEUE_TYPE.Name, QUEUE_TIME.QueueTypeId
ORDER BY
'DateAdded'
高:毫米-高:毫米(+1)
例如,如果时间是14:00,它将返回14:00-15:00
我已设法做到以下几点:
SELECT TOP (30)
DATEADD(HOUR, DATEDIFF(HOUR, 0, QUEUE_TIME.QueueDate), 0) AS 'DateAdded',
CAST(CONVERT(VARCHAR(2), DATEPART(HH, QUEUE_TIME.QueueDate), 108) AS VARCHAR(2)) + ' - ' +
CAST(CONVERT(VARCHAR(2), DATEPART(HH, QUEUE_TIME.QueueDate), 108) + 1 AS VARCHAR(2)) AS Interval,
QUEUE_TYPE.Name, QUEUE_TIME.QueueTypeId,
MAX(QUEUE_TIME.QueuedTimeInSec / 60) AS 'WaitingTimeInSec',
CAST(ROUND(AVG(QUEUE_TIME.FlowRateWhenJoinedPerMin), 1) AS numeric(36, 2)) AS AvgFlowRate
FROM
QUEUE_TIME
INNER JOIN
QUEUE_TYPE ON QUEUE_TIME.QueueTypeId = QUEUE_TYPE.Id
WHERE
(QUEUE_TIME.QueueDate >= '11/07/2014 00:00')
AND (QUEUE_TIME.IsFreeFlowing = '0')
AND (QUEUE_TIME.QueueTypeId = '3')
GROUP BY
DATEADD(HOUR, DATEDIFF(HOUR, 0, QUEUE_TIME.QueueDate), 0),
DATEPART(HOUR, QUEUE_TIME.QueueDate), QUEUE_TYPE.Name, QUEUE_TIME.QueueTypeId
ORDER BY
'DateAdded'
这将返回如下,例如,如果是上午8点,则返回8-9。但是我需要它的格式是08:00-09:00
任何协助都将不胜感激
我正在使用SQLServer2008
谢谢这是一个示例,您可以用列名替换
@now
变量:
declare @now datetime = getdate()
select convert(varchar(5), @now, 114) + ' - ' +
convert(varchar(5), dateadd(hour, 1, @now), 114) yourColumn
试试SQL Server 2012+:
SELECT FORMAT(GETDATE(), 'HH:mm') + '-' + FORMAT(DATEADD(HH, 1, GETDATE()), 'HH:mm')
(如果您有较旧版本的SQL Server,可能必须将“=getdate()”移到第二行)@MikeM是的,在同一行中指定默认值在2008年及其后的SQL Server版本中有效。回答不错。。。以前未使用过114:)(如果在SQL Server 2012或2014中)。。。(但OP说2008年)啊,是的。把文章读到底是件好事。谢谢你的更正@MikeM。