我刚刚创建了一个报告,用于从Audit表中返回数据,该表在交易平台上收集登录和注销活动。
在datetime2
数据类型实现日期列之后,我开始遇到某个字符串的问题。具体来说,该字符串用于收集有关用户在给定月份内的活跃程度的各种信息,用于表示登录和注销的次数,登录后登录之前他们活动的天数等等
CAST(MAX(FLOOR(CAST(bus.SessionTimestamp AS FLOAT))) AS DATETIME) as SessionDate
问题是由于datetime2
转换为float
不再是一种选择,因为datetime
曾经是。{/ p>
如何让上述字符串以类似的方式工作,但实际上又能正常运行?
提前感谢大家。
答案 0 :(得分:1)
一旦你意识到这段代码正在尝试做什么,这是一个微不足道的转换:
MAX(CAST(bus.SessionTimestamp AS DATE)) as SessionDate
转换为FLOOR
后的float
只是删除时间组件。在计算CAST
之后是否将datetime2
恢复为MAX
。