gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 13:43:00 26 4
gpt4 key购买 nike

我有以下数据:

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
);

最佳答案

您可以通过执行范围来指定一整天,如下所示:

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 中删除小时、分钟和秒。

关于sql - Oracle:SQL 选择带时间戳的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13337635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com