提取特定日期最后一小时的记录
Extract the record for last hour for specific date
我正在尝试从特定日期( BUS_DAT).
我有以下代码,但它会提取每小时的票数 (TKT_NO)。我只想过滤最后一个小时。这是我使用的代码:
Select count(TKT_NO) AS SAL_TKTS,
DATEPART(HOUR, (TKT_DT))AS SAL_HR
FROM PS_TKT_HIST
WHERE BUS_DAT = '2022-03-30'
GROUP By DATEPART (HOUR, TKT_DT)
我得到了流畅的结果
SAL_TKTS SAL_HR
5 10
1 11
3 12
5 13
10 14
13 15
23 16
18 17
12 18
6 19
6 20
4 21
我只想获取最后一个小时(21)的记录(4)
如果您只想要某一天最后一小时的票数:
DECLARE @date date = '20220330';
SELECT COUNT(*)
FROM dbo.PS_TKT_HIST
WHERE BUS_DAT = @date
AND TKT_DAT >= DATEADD(HOUR, 23, CONVERT(datetime2, @date));
除最后一小时(比方说,晚上 9 点)以外的任何时间:
WHERE BUS_DAT = @date
AND TKT_DAT >= DATEADD(HOUR, 21, CONVERT(datetime2, @date))
AND TKT_DAT < DATEADD(HOUR, 22, CONVERT(datetime2, @date));
如果“最后一小时”不是指晚上 11 点,而是最后一小时有促销活动,则您必须这样做:
DECLARE @date date = '20220330';
SELECT TOP (1) COUNT(*)
FROM dbo.PS_TKT_HIST
WHERE BUS_DAT = @date
GROUP BY DATEPART(HOUR, TKT_DAT)
ORDER BY DATEPART(HOUR, TKT_DAT) DESC;
我正在尝试从特定日期( BUS_DAT).
我有以下代码,但它会提取每小时的票数 (TKT_NO)。我只想过滤最后一个小时。这是我使用的代码:
Select count(TKT_NO) AS SAL_TKTS,
DATEPART(HOUR, (TKT_DT))AS SAL_HR
FROM PS_TKT_HIST
WHERE BUS_DAT = '2022-03-30'
GROUP By DATEPART (HOUR, TKT_DT)
我得到了流畅的结果
SAL_TKTS SAL_HR
5 10
1 11
3 12
5 13
10 14
13 15
23 16
18 17
12 18
6 19
6 20
4 21
我只想获取最后一个小时(21)的记录(4)
如果您只想要某一天最后一小时的票数:
DECLARE @date date = '20220330';
SELECT COUNT(*)
FROM dbo.PS_TKT_HIST
WHERE BUS_DAT = @date
AND TKT_DAT >= DATEADD(HOUR, 23, CONVERT(datetime2, @date));
除最后一小时(比方说,晚上 9 点)以外的任何时间:
WHERE BUS_DAT = @date
AND TKT_DAT >= DATEADD(HOUR, 21, CONVERT(datetime2, @date))
AND TKT_DAT < DATEADD(HOUR, 22, CONVERT(datetime2, @date));
如果“最后一小时”不是指晚上 11 点,而是最后一小时有促销活动,则您必须这样做:
DECLARE @date date = '20220330';
SELECT TOP (1) COUNT(*)
FROM dbo.PS_TKT_HIST
WHERE BUS_DAT = @date
GROUP BY DATEPART(HOUR, TKT_DAT)
ORDER BY DATEPART(HOUR, TKT_DAT) DESC;