gpt4 book ai didi

sql-server-2008 - 计算查询中的不同天数

转载 作者:行者123 更新时间:2023-12-01 08:31:52 26 4
gpt4 key购买 nike

我们有一个表,其中有一个 StartDate 字段,该字段包含一种日期时间。有数千条记录,我正在寻找一种方法来查找从该表返回的给定结果中的天数。例如,如果我的表有以下数据:

ID | StartDate
--------------
1 01/01/2013 09:34:54
2 01/01/2013 11:23:21
3 04/11/2013 14:43:23
4 04/11/2013 17:13:03
5 04/25/2013 18:02:59
6 07/21/2013 02:56:12
7 10/01/2013 19:43:10

那么查询应该返回 5,因为 2013 年 1 月 1 日的 2 个日期算作 1,2013 年 4 月 11 日也是如此。

我能想到的唯一 SQL 是:

SELECT COUNT(DISTINCT(DATEPART(DAY, StartDate)))
FROM Stats
WHERE StartDate BETWEEN '01/01/2013' AND '12/31/2013' --This is just for filtering

但这会返回 4,因为它没有考虑月份。

感谢任何帮助。

最佳答案

您可以CAST作为日期

SELECT COUNT(DISTINCT CAST(StartDate AS DATE))
FROM Stats
WHERE StartDate >= '20130101' AND StartDate < '20140101'

还可以使用明确的日期格式,例如 yyyymmdd>= <不是 BETWEEN .

如果有一行的值恰好为 20131231 00:00:00,则您当前的查询将包括 12 月 31 日但在那个日期没有任何不同的时间。我怀疑这是故意的。

关于sql-server-2008 - 计算查询中的不同天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18152772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com