![](/img/trans.png)
[英]Query for Current_Timestamp between Start- and End-Time (w/o Date!) Oracle PL/SQL
[英]start/end date and time in oracle sql query
我需要一个查询输出,如下表所示; 这是表的主要条目,这些记录将由我无法控制的第三方程序修改。 谁能建议一个好的样品?
ID | DATEIN | DATEOUT | STATUS 1 02.02.2014 00:00:00 02.02.2014 23:59:59 1 2 03.02.2014 00:00:00 03.02.2014 23:59:59 0
我试过了
SELECT To_Char(To_Date(SYSDATE), 'dd-MM-yyyy hh:mm:ss PM'),
To_Char(date_add(To_Date(SYSDATE +1), INTERVAL -1 SECOND), 'dd-MM-yyyy hh:mm:ss PM')
FROM dual
但是此查询引发错误ORA-00907: missing right parenthesis
。
如果您希望将其设置为24小时格式,则无需PM
。 并注意几分钟,它是mi
,而不是查询中的mm
。 同样,正如已经提到的那样,无需将SYSDATE
转换为日期,因为它已经是该数据类型:
SELECT to_char(to_date(SYSDATE), 'dd-mm-yyyy HH24:mi:ss') date_in,
to_char(to_date(SYSDATE + 1) - INTERVAL '1' SECOND, 'dd-mm-yyyy HH24:mi:ss') date_out
FROM dual;
DATE_IN DATE_OUT
------------------- -------------------
11-03-2014 00:00:00 11-03-2014 23:59:59
您可以取消使用DATE_ADD和TO_DATE函数(SYSDATE已经是DATE,无需进行转换),还可以使用mi
来显示分钟而不是mm
,而mm
是月份的格式说明符,如下所示:
SELECT To_Char(SYSDATE, 'dd-MM-yyyy hh:mi:ss PM'),
To_Char((SYSDATE + 1) + INTERVAL '-1' SECOND, 'dd-MM-yyyy hh:mi:ss PM')
FROM dual
我不清楚您想从上述查询中实现什么,但是如果括号是您唯一的问题,那么您必须执行以下查询:
SELECT To_Char(To_Date((SYSDATE), 'dd-MM-yyyy hh:mm:ss PM')),
To_Char(date_add(To_Date(SYSDATE +1), INTERVAL -1 SECOND), 'dd-MM-yyyy hh:mm:ss PM')
FROM dual
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.