excel 链接 sql 服务器查询上的 sumifs 日期
sumifs on excel linked sql server query with date
当使用日期列作为条件时,我无法对 linked 到 MS SQL 服务器 2008R2 视图的单元格范围执行求和或计数。
如果它是在本地 table link 上完成的,它们工作正常,但看起来查询以文本形式提供日期,所以..
- 我已经尝试使用 convert 格式化查询的输出,但它仍然是文本输出
- 尝试在 excel 的 sumif 中使用 datevalue 函数,但似乎不适用于范围
- 同样适用于文本功能
缺少要复制和转换的 运行 宏(这有点违背实时 link 的目的),任何人都可以在服务器或 excel 端提供解决方法?
干杯
有趣的是,Excel 无法识别 SQL 的数据类型 date
。如果您希望 Excel 将其识别为日期,则必须将其转换为 datetime
。因此,如果您在查询中使用强制转换将日期字段转换为日期时间,那么 Excel 将识别并处理它。
这是因为 Excel 与自 2008 版以来的 SQL 不同 – 无法区分日期和时间。
如果您选择在单元格中输入日期并将其格式化,那么它仍然是 datetime
到 Excel,如果您将该单元格重新格式化为带时间的日期,您会看到 Excel 自动假定时间为 00:00:00(午夜)。当您仅输入一个时间时,这同样适用。在这种情况下 Excel 将自动假定 00.01.1900 作为基础“日期”。
原因是所有 datetime
都作为数字存储在 Excel 中。小数点之前的任何内容是 00.01.1900 和您要存储的日期之间的差异,而冒号之后的任何内容代表一天中的时间。由于任何 Excel 单元格中的所有数字可能在冒号前后都有一个数字,因此只有 datetime
。
数字 42.000 表示 00.01.1900 之后的第 42.000 天,相当于 2014 年 12 月 27 日和午夜时间,而数字 42.000,75 表示一天的 75% 已经结束:0,75 * 24 小时 = 6PM = 18:00:00(军用时间)2014 年 12 月 27 日。
当使用日期列作为条件时,我无法对 linked 到 MS SQL 服务器 2008R2 视图的单元格范围执行求和或计数。
如果它是在本地 table link 上完成的,它们工作正常,但看起来查询以文本形式提供日期,所以..
- 我已经尝试使用 convert 格式化查询的输出,但它仍然是文本输出
- 尝试在 excel 的 sumif 中使用 datevalue 函数,但似乎不适用于范围
- 同样适用于文本功能
缺少要复制和转换的 运行 宏(这有点违背实时 link 的目的),任何人都可以在服务器或 excel 端提供解决方法?
干杯
有趣的是,Excel 无法识别 SQL 的数据类型 date
。如果您希望 Excel 将其识别为日期,则必须将其转换为 datetime
。因此,如果您在查询中使用强制转换将日期字段转换为日期时间,那么 Excel 将识别并处理它。
这是因为 Excel 与自 2008 版以来的 SQL 不同 – 无法区分日期和时间。
如果您选择在单元格中输入日期并将其格式化,那么它仍然是 datetime
到 Excel,如果您将该单元格重新格式化为带时间的日期,您会看到 Excel 自动假定时间为 00:00:00(午夜)。当您仅输入一个时间时,这同样适用。在这种情况下 Excel 将自动假定 00.01.1900 作为基础“日期”。
原因是所有 datetime
都作为数字存储在 Excel 中。小数点之前的任何内容是 00.01.1900 和您要存储的日期之间的差异,而冒号之后的任何内容代表一天中的时间。由于任何 Excel 单元格中的所有数字可能在冒号前后都有一个数字,因此只有 datetime
。
数字 42.000 表示 00.01.1900 之后的第 42.000 天,相当于 2014 年 12 月 27 日和午夜时间,而数字 42.000,75 表示一天的 75% 已经结束:0,75 * 24 小时 = 6PM = 18:00:00(军用时间)2014 年 12 月 27 日。