统计TSQL中小时跨度之间的记录数

统计TSQL中小时跨度之间的记录数,tsql,hour,Tsql,Hour,我试图计算上午8点至下午8点(例如2013年5月2日)与下午8点至上午8点(第二天)之间的交易数量 具有这些时间的字段称为-CREATED\u DT 正在销售的商品的字段称为-ITEM\u ID 有人能帮忙吗?在论坛上找不到它 谢谢, 或者。像这样的东西: SELECT COUNT(1) FROM dbo.YOUR_TABLE WHERE CAST(CREATED_DT AS DATE) = '03.20.2013' AND CAST(CREATE

我试图计算上午8点至下午8点(例如2013年5月2日)与下午8点至上午8点(第二天)之间的交易数量

具有这些时间的字段称为-
CREATED\u DT

正在销售的商品的字段称为-
ITEM\u ID

有人能帮忙吗?在论坛上找不到它

谢谢, 或者。

像这样的东西:

SELECT 
    COUNT(1)

FROM 
    dbo.YOUR_TABLE

WHERE
    CAST(CREATED_DT AS DATE) = '03.20.2013'
    AND
    CAST(CREATED_DT AS TIME(0)) BETWEEN '08:00:00' AND '20:00:00'

MSDN:

因为您正在查找相对计数

select day2-day1 from
(
    select 
        sum(case when created_dt = '2013-05-20' then 1 else 0 end) as day1
        , sum(case when created_dt = '2013-05-21' then 1 else 0 end) as day2 
    from your_table
    where CREATED_DT between '2013-05-20 08:00:00' and '2013-05-20 20:00:00' 
    or CREATED_DT between '2013-05-21 08:00:00' and '2013-05-21 20:00:00'
)t

顺便说一句,这里是上午8点和晚上8点

select count(ITEM_ID) from your_table
    where CREATED_DT between 
    CONVERT(varchar(15),CAST('2013-05-20 08:00:00' AS TIME),100) and 
CONVERT(varchar(15),CAST('2013-05-20 20:00:00' AS TIME),100)

我收到以下错误消息-选择失败。[3706]语法错误:应在“,”和“CAST”关键字之间。我不能,我在一个大型组织的Teradate上,无法复制方案。我收到以下错误-选择失败。[3535]字符串转换为数值失败。可能是创建的_DT在系统中是字符串而不是数字吗?@user3655929:你告诉我。这是你的桌子。但可能是这样。在这种情况下,您应该显示一些示例数据。然后我们可以将其转换为
datetime
我得到以下错误-选择失败。[3535]字符串转换为数值失败。可能是系统中创建的DT是字符串而不是数字吗?可能,
CREATED DT
必须是
DATETIME
类型。如果没有-u可以转换它:
convert(DATETIME,CREATED\u DT,101)
select count(ITEM_ID) from your_table
    where CREATED_DT between 
    CONVERT(varchar(15),CAST('2013-05-20 08:00:00' AS TIME),100) and 
CONVERT(varchar(15),CAST('2013-05-20 20:00:00' AS TIME),100)