Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql oracle如何检查';时间';不在两个日期字段和时间之间选择日期_Sql_Oracle - Fatal编程技术网

Sql oracle如何检查';时间';不在两个日期字段和时间之间选择日期

Sql oracle如何检查';时间';不在两个日期字段和时间之间选择日期,sql,oracle,Sql,Oracle,Q1-我有一个任务,我想检查两个日期字段(开始日期、结束日期)及其时间之间的“时间”是否重叠 ,我要检查的时间与开始日期和结束日期在同一日期 有什么想法或建议吗 Q2- 返回: ora-01722无效号码 我的NLS_TIMESTAMP_格式为'DD-MON-yyyyy HH24:MI:SS'Q1:您可以使用常规比较运算符比较日期,因此要检查给定日期是否属于日期间隔,您需要: ...my_date >= start_date AND my_date <= end_date Q2-这

Q1-我有一个任务,我想检查两个日期字段(开始日期、结束日期)及其时间之间的“时间”是否重叠 ,我要检查的时间与开始日期和结束日期在同一日期

有什么想法或建议吗

Q2-

返回:

ora-01722无效号码


我的NLS_TIMESTAMP_格式为'DD-MON-yyyyy HH24:MI:SS'

Q1:您可以使用常规比较运算符比较日期,因此要检查给定日期是否属于日期间隔,您需要:

...my_date >= start_date AND my_date <= end_date
Q2-这不起作用,因为TO_CHAR调用需要一个日期作为第一个参数(不是字符串),并返回一个字符串,这对TO_时间戳的使用没有好处

您应该跳到\u CHAR并以TO\u时间戳开始:

select
    extract( hour from
        to_timestamp('04/04/2018 04:05:05', 'dd/mm/yyyy hh24:mi:ss')
        )
    ) as v_to 
from dual;

“TO_TIMESTAMP将char、VARCHAR2、NCHAR或NVARCHAR2数据类型的char转换为TIMESTAMP数据类型的值。”“TO_char(datetime)将日期、时间戳、时区时间戳或本地时区时间戳数据类型的datetime或interval值转换为日期格式fmt指定格式的VARCHAR2数据类型值。如果省略fmt,则日期将转换为VARCHAR2值,如下所示:所以您需要使用CAST i geus将datetime数据类型转换为timestamp数据类型<代码>。。。to_时间戳(转换为时间戳)(to_char('04/04/2018 04:05:05','dd/mm/yyyyy hh24:mi:ss'))…Q1:请定义您所称的“两个日期之间的时间重叠”我的时间与存储的开始日期和结束日期相同****我必须检查新时间是否不在开始日期和结束日期中存储的时间之间****例如开始日期='04/04/2018 10:30:00'****结束日期='04/04/2018 12:30:00'****如果新的='04/04/2018 11:00:00'返回错误消息,如果没有,非常感谢,很好,我错过了to_char takes date而不是string,但是我的第一个问题是什么:我的时间与存储的开始日期和结束日期相同****我必须检查新时间是否不在开始日期和结束日期中存储的时间之间****例如,开始日期='04/04/2018 10:30:00'****结束日期='04/04/201812:30:00'****如果新='04/04/2018 11:00:00'返回错误消息如果不接受
...my_date BETWEEN start_date AND end_date
select
    extract( hour from
        to_timestamp('04/04/2018 04:05:05', 'dd/mm/yyyy hh24:mi:ss')
        )
    ) as v_to 
from dual;