gpt4 book ai didi

SQL - 带子查询的 DATEDIFF

转载 作者:行者123 更新时间:2023-12-04 14:16:30 29 4
gpt4 key购买 nike

我需要从 SQL Server 数据库向下游传递一个值,这本质上是两个 时间戳 之间的差异。使用 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'

我已经尝试了几种不同的方法,但是都没有成功。最新的我已经厌倦了下面,从语法的角度来看它看起来不错,但我得到了错误:

Conversion failed when converting date and/or time from character string

我从来都不太确定如何应对或处理。

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;

如有任何指点或帮助,我们将不胜感激。

最佳答案

子查询不应该是字符串,所以去掉单引号。另外,您谈论的是 O.DATE1 和 C.DATE2,所以您的意思可能是这样的:

select DATEDIFF (day, 
(select O.DATE1
from TABLE1 O
where O.VALUE1 = 16650476) ,
(SELECT C.DATE2
from TABLE1 O, TABLE2 C
WHERE O.VALUE1 = C.VALUE2 AND O.order_id = 12345678)) AS DIFFDATE;

关于SQL - 带子查询的 DATEDIFF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30506148/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com