【发布时间】:2018-08-20 09:44:20
【问题描述】:
我已尝试搜索此问题的答案,但我找到的解决方案均无效。
我需要从另一个中减去 2 个日期字段:datearrival - 离开日期,但它们都是 varchar,因此减法运算符不起作用。
有人可以在代码中给我一个答案,或许可以使用 cast 和/或 date diff 来完成这项工作吗?
我当前的代码是:
DATEDIFF(dd,[ARRIVDAT],current_timestamp)-(dd,[DEPARTDAT],currenttimestamp) AS LengthOfStay
这会突出显示无法识别的列名,即使在查询的其余部分中,多绑定标识符也没问题。
请问有什么好的答案吗?
【问题讨论】:
-
修复您的架构,不要将日期存储为字符串。使用
date或datetime或类似类型。也就是说,您是否尝试过convert(date, arrivdat)之类的方法? -
编辑问题添加一些示例数据和所需的结果会有所帮助。
-
(dd,[DEPARTDAT],currenttimestamp)本身没有任何意义。这是否意味着某种函数调用? (例如,另一个DATEPART调用)如果是这样,您忘记提供函数名称。 -
@sticky bit 谢谢,你提供了正确的答案。
标签: sql sql-server sql-server-2016