Oracle:SQL选择带时间戳的日期
发布时间:2020-12-12 13:13:32 所属栏目:百科 来源:网络整理
导读:我有以下数据: 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> 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,TO_TIMESTAMP('20/03/2012 11:00',2,1 ); 解决方法您可以通过执行范围来指定整天,如下所示:WHERE bk_date >= TO_DATE('2012-03-18','YYYY-MM-DD') AND bk_date < TO_DATE('2012-03-19','YYYY-MM-DD') 更简单的是你可以使用TRUNC: WHERE TRUNC(bk_date) = TO_DATE('2012-03-18','YYYY-MM-DD') 不带参数的TRUNC会从DATE中删除小时,分钟和秒. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |