我正在尝试找出Oracle中的DateAdd()等效项,它实际上是同一个表中两列之间的秒数差:
SELECT
DISTINCT p.packet_id,
p.launch_dt,
r.route_duration,
s.completion_date,
DATEADD(SS, r.route_duration, p.launch_dt) AS tempDate
FROM
tdc_arc_apprpkt_def p
JOIN tdc_arc_inpr_route_def r
ON p.packet_id = r.packet_id
JOIN tdc_arc_inpr_route_step_detai s
ON p.packet_id = s.packet_id
AND s.completion_date > DATEADD(SS, r.route_duration, p.launch_dt)任何帮助都将不胜感激!
发布于 2012-03-14 22:44:39
假设您使用的是9i或更高版本,除了能够使用天的分数进行日期算术之外,还可以使用interval函数(或者,更好的方法是将ROUTE_DURATION列定义为interval),并将interval添加到日期中。在您的情况下,您可以
p.launch_dt + numtodsinterval( r.route_duration, 'SECOND' ) 将route_duration秒添加到launch_dt。
如果要将route_duration列定义为INTERVAL DAY TO SECOND而不是NUMBER,则只需将其添加到日期即可
p.launch_dt + r.route_duration发布于 2012-03-14 21:59:23
如果我理解正确的话,您想在p.launch_dt中添加r.route_duration seconds吗?在这种情况下,表达式为:
p.launch_dt + (r.route_duration/24/60/60)Oracle DATE算法以天为单位,因此除以24、60和60可以将route_duration值从秒转换为天。
https://stackoverflow.com/questions/9703318
复制相似问题