如何解决datetime2的显式转换策略

时间:2017-04-13 10:47:31

标签: sql sql-server sqldatatypes

我刚刚创建了一个报告,用于从Audit表中返回数据,该表在交易平台上收集登录和注销活动。

datetime2数据类型实现日期列之后,我开始遇到某个字符串的问题。具体来说,该字符串用于收集有关用户在给定月份内的活跃程度的各种信息,用于表示登录和注销的次数,登录后登录之前他们活动的天数等等

CAST(MAX(FLOOR(CAST(bus.SessionTimestamp AS FLOAT))) AS DATETIME) as SessionDate

问题是由于datetime2转换为float不再是一种选择,因为datetime曾经是。{/ p>

如何让上述字符串以类似的方式工作,但实际上又能正常运行?

提前感谢大家。

1 个答案:

答案 0 :(得分:1)

一旦你意识到这段代码正在尝试做什么,这是一个微不足道的转换:

MAX(CAST(bus.SessionTimestamp AS DATE)) as SessionDate

转换为FLOOR后的float只是删除时间组件。在计算CAST之后是否将datetime2恢复为MAX