【发布时间】:2015-05-28 12:07:22
【问题描述】:
我需要从SQL Server DB 向下游传递一个值,这本质上是两个timestamps 之间的差异。使用DATEDIFF 函数就足够简单了。
SELECT DATEDIFF(day, '2015-11-06 00:00:00.000','2015-12-25 00:00:00.000') AS DiffDate ;
但是,在将值向下传递时,代码只知道订单 ID 值,而不知道上面显示的 2 个时间戳。因此,我需要 timestamp 信息来自子查询,或者我认为的其他信息。子查询的主要细节在这里:
select O.DATE1 , C.DATE2
from TABLE1 O, TABLE2 C
WHERE O.VALUE1_ID = C.VALUE1
AND O.order_id = '12345678'
我尝试了几种不同的方法,但都没有成功。我厌倦的最新消息如下,从语法的角度来看,它看起来不错,但我得到了错误:
从字符转换日期和/或时间时转换失败 字符串
我不太确定如何应对或处理。
select DATEDIFF (day,'(select O.VALUE1
from TABLE1 O
where O.VALUE1 = 16650476)' ,
'(SELECT C.VALUE1
from TABLE1 O, TABLE2 C
WHERE O.VALUE1 = C.VALUE2 AND O.order_id = 12345678)') AS DIFFDATE;
任何指针或帮助将不胜感激。
【问题讨论】:
-
请使用示例数据和所需结果编辑您的问题。您的代码示例确实无助于传达您正在尝试做的事情。
-
.. 最好对样本数据使用 ddl + dml 语句,以便我们可以fiddle它。
标签: sql sql-server datediff