Oracle Sql在插入状态时向截止日期添加小时和分钟
您好,我正在尝试做一个insert语句,其中包括在to_日期上增加2小时10分钟 但我不知道我可以使用哪个函数 这是我到目前为止的声明Oracle Sql在插入状态时向截止日期添加小时和分钟,sql,oracle,datetime,sql-insert,date-arithmetic,Sql,Oracle,Datetime,Sql Insert,Date Arithmetic,您好,我正在尝试做一个insert语句,其中包括在to_日期上增加2小时10分钟 但我不知道我可以使用哪个函数 这是我到目前为止的声明 insert into xyz values (TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM')) 但是我想在插入时在上面加上2小时10分钟。使用日期算法。在Oracle中,可以将十进制值添加到日期(1表示“1天”): 或: 或(向Wernfried Domscheit提供信贷): 使用日期算术。在
insert into xyz values (TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM'))
但是我想在插入时在上面加上2小时10分钟。使用日期算法。在Oracle中,可以将十进制值添加到日期(
1
表示“1天”):
或:
或(向Wernfried Domscheit提供信贷):
使用日期算术。在Oracle中,可以将十进制值添加到日期(
1
表示“1天”):
或:
或(向Wernfried Domscheit提供信贷):
您也可以使用
interval
insert into xyz values (TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM') + interval '130' minute);
select TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM') + interval '130' minute from dual;
TO_DATE('22-OCT-202
-------------------
22-10-2020 01:10 PM
select TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM') + interval '1' day from dual;
TO_DATE('22-OCT-202
-------------------
23-10-2020 11:00 AM
您也可以使用
interval
insert into xyz values (TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM') + interval '130' minute);
select TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM') + interval '130' minute from dual;
TO_DATE('22-OCT-202
-------------------
22-10-2020 01:10 PM
select TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM') + interval '1' day from dual;
TO_DATE('22-OCT-202
-------------------
23-10-2020 11:00 AM
如果我只想添加天数,我需要使用什么函数?注意,格式
MM
实际上意味着月份数。正确的语法应该是TO_DATE('22-Oct-2020 11:00 AM','DD Mon YYYY HH:MI AM','NLS_DATE_LANGUAGE=American')
如果我只想添加天数,我需要使用什么函数?注意,格式MM
实际上意味着月份数。正确的语法应该是TO_DATE('22-Oct-2020 11:00 AM','DD Mon YYYY HH:MI AM','NLS_DATE_LANGUAGE=American')
你也可以写+interval'2:10'hour-TO-minute
这会自动将上午改为下午吗?@WernfriedDomscheit:是的。为了完整起见,我在回答中加了这个。非常感谢。非常感谢您,我花了这么多时间尝试addtime、dateadd()等。您还可以编写+每小时间隔“2:10”
这会自动将AM更改为PM吗?@WernfriedDomscheit:是的,的确如此。为了完整起见,我在回答中加了这个。非常感谢。非常感谢,我花了很多时间尝试addtime、dateadd()等。
insert into xyz
values (
to_date('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM')
+ interval '2:10' hour to minute
)
insert into xyz values (TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM') + interval '130' minute);
select TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM') + interval '130' minute from dual;
TO_DATE('22-OCT-202
-------------------
22-10-2020 01:10 PM
select TO_DATE('22-Oct-2020 11:00 AM', 'DD-MM-YYYY HH:MI AM') + interval '1' day from dual;
TO_DATE('22-OCT-202
-------------------
23-10-2020 11:00 AM