当前位置: 首页 > 面试题库 >

Oracle:带时间戳的SQL选择日期

敖子安
2023-03-14
问题内容

我有以下数据:

SQL> select * from booking_session;

BK_ID|BK_DATE
-----|-------------------------
    1|18-MAR-12 10.00.00.000000
    2|18-MAR-12 10.25.00.000000
    3|18-MAR-12 10.30.00.000000
    4|18-MAR-12 10.35.00.000000
    5|18-MAR-12 10.40.00.000000

我正在尝试编写一个sql查询,该查询选择与某个日期匹配的所有记录,但是我正在为该BK_DATE字段使用时间戳记,无论我如何尝试,我的查询都不会产生任何结果。

SQL :我尝试了以下查询,但没有任何结果

1。

select * 
from booking_session
where bk_date = to_date('18-03-2012', 'dd-mm-yyyy');

2。

select * 
from booking_session
where bk_date = to_timestamp('18-03-2012', 'dd-mm-yyyy');

3。

select * 
from booking_session
where bk_date = to_date('18-MAR-2012', 'dd-mm-yyyy');

仅当我将整个日期值设置为时,它才起作用;

select * 
from booking_session
WHERE bk_date = '18-MAR-12 11.00.00.000000';


CREATE TABLE BOOKING_SESSION(
  BK_ID NUMBER NOT NULL,
  BK_DATE TIMESTAMP,
  BK_BOOKER NUMBER,
  BK_CUSTOMER NUMBER,
  BK_TREATMENT NUMBER,
  T_SESSION_DATETIME TIMESTAMP,
  STAFFAPPOINTED NUMBER,
  BK_ROOM NUMBER
);

INSERT INTO BOOKING_SESSION VALUES (
  1,
  TO_TIMESTAMP('18/03/2012 10:00', 'DD/MM/YYYY HH24:MI'),
  1,
  1,
  1,
  TO_TIMESTAMP('20/03/2012 11:00', 'DD/MM/YYYY HH24:MI'),2,1
);

问题答案:

尼古拉斯·克拉斯诺夫(Nicholas Krasnov)提供的答案

SELECT *
FROM BOOKING_SESSION
WHERE TO_CHAR(T_SESSION_DATETIME, 'DD-MM-YYYY') ='20-03-2012';


 类似资料:
  • 我的Oracle表有1,000个观察值,以下2个变量:(两个字段都是varchar) 我是不是漏掉了一些明显的东西? 谢谢

  • 我试图选择头衔、姓氏、出生日期和头衔为“销售代表”并且他们出生在1950年之前或之后的国家。 当a把日期放在代码中时,它会给我一个错误。 我认为这是正确的: 它给ORA-01843的错误:不是有效的月份 如果你能帮助我,谢谢你。 以下是表格的示例数据:

  • 我试图获得一个SQL语句来选择时间戳在两个给定时间戳之间的行。这是我试过的。(这是在Java servlet上,而我是Java时间戳对象。) 这里的from和to是timestamp对象这给了我一个语法错误,当我试图准备语句时,请帮助

  • 我正试图将这些值插入到oracle数据库中,但我又犯了一个错误: 错误为:ORA-01843:不是有效月份 几个小时来一直试图解决这个问题,但我找不到问题!请帮忙!。 信息[http-8080-2](ecsystem.java:233)-2013-11-22 15:34:55.0\2013-11-22 15:34:55.0 希望这些信息能有所帮助!

  • 我试图编写一个SQL表达式,该表达式将在特定时区将unix历元(1970/1/1以来的秒)转换为本地时间,并从中提取小时值。在研究了这段时间的解决方案后,我仍然不确定如何处理时区。注意,我尽量避免使用NEW_TIME()函数,因为它只使用时区缩略词的有限子集,而不使用全时区名称。 结果是 结果有几个问题 第1列:从时间戳开始,该值比使用日期关闭1小时 第2列:在America/los_Angele

  • 问题内容: 我有一个带有日期/时间值的字段,如下所示: 在UTC中。在查询中如何将其转换为EST? 我正在尝试类似的操作,但是会引发错误。 问题答案: 我必须对其进行一些微调,以使其在我的数据库上工作,但这是可行的: 关键是“在时区”语法。