SQL语句以获取给定日期范围的总计
我正在尝试获取给定日期范围内每天的预订数量及其总价值 我的桌子看起来像: 我只能使用以下命令将BookingDateTime转换为日期:SQL语句以获取给定日期范围的总计,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在尝试获取给定日期范围内每天的预订数量及其总价值 我的桌子看起来像: 我只能使用以下命令将BookingDateTime转换为日期: SELECT CONVERT(varchar(8), BookingDateTime, 112) as BookingDateOnly FROM [TaxiBookingOnline].[dbo].[Bookings] 我想要的是这样的东西: Date Bookings Value 2013-07-10 10 25
SELECT CONVERT(varchar(8), BookingDateTime, 112) as BookingDateOnly
FROM [TaxiBookingOnline].[dbo].[Bookings]
我想要的是这样的东西:
Date Bookings Value
2013-07-10 10 256.24
2013-07-11 12 321.44
2013-07-12 14 311.53
我觉得我应该给表格加上别名,将其连接到表格本身,然后使用“分组方式”,但我没能让它起作用
任何帮助都将不胜感激
谢谢。怎么样
select
cast(BookingDateTime as date) [Date],
count(*) [Bookings],
sum(BookingFare) [Value]
from t
group by cast(BookingDateTime as date)
怎么样
select
cast(BookingDateTime as date) [Date],
count(*) [Bookings],
sum(BookingFare) [Value]
from t
group by cast(BookingDateTime as date)
分组依据选择DATEADD(dd,0,DATEDIFF(dd,0,dateColumn))
,这将有效地获取日期时间的日期部分,然后您可以根据需要对分组值使用计数
或求和
编辑:如果您使用的是SQL Server>=2008,您可以强制转换为(就像@AlexK所做的那样),否则您必须使用DATEADD
对其进行破解
分组依据选择DATEADD(dd,0,DATEDIFF(dd,0,dateColumn))
,这将有效地获取日期时间的日期部分,然后您可以根据需要对分组值使用计数
或求和
编辑:如果您使用的是SQL Server>=2008,您可以强制转换为(就像@AlexK所做的那样),否则您必须使用DATEADD
对其进行破解。下面是代码。用日期范围值替换日期1和日期2:
SELECT
CONVERT(varchar(8), BookingDateTime, 112) as BookingDateOnly, BookingID Bookings,Sum(BookingFare)Value
FROM
[TaxiBookingOnline].[dbo].[Bookings]
WHERE BookingDateTime Between 'Date1' and 'Date2'
GROUP BY
BookingDateTime,BookingID
下面是代码。用日期范围值替换日期1和日期2:
SELECT
CONVERT(varchar(8), BookingDateTime, 112) as BookingDateOnly, BookingID Bookings,Sum(BookingFare)Value
FROM
[TaxiBookingOnline].[dbo].[Bookings]
WHERE BookingDateTime Between 'Date1' and 'Date2'
GROUP BY
BookingDateTime,BookingID
难以置信的你让这看起来很容易!我真的必须花些时间来熟悉SQL。非常感谢@user975516请注意,这仅在SQL Server 2008及更高版本上有效。早期版本不支持日期类型。难以置信!你让这看起来很容易!我真的必须花些时间来熟悉SQL。非常感谢@user975516请注意,这仅在SQL Server 2008及更高版本上有效。早期版本不支持日期类型。非常感谢。了解DATEADD很有用。我是2012年的演员,所以我能够到目前为止的演员阵容。非常感谢。了解DATEADD很有用。我是2012年的演员,所以我可以到现在为止。
SELECT
CONVERT(DATE,BookingDateTime) BookingDate,
COUNT(BookingID) Bookings,
SUM(BookingFare) BookingFare
FROM TaxiBookingOnline.dbo.Bookings