回答

收藏

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

技术问答 技术问答 381 人阅读 | 0 人回复 | 2023-09-14

我有以下数据:0 W3 ^# o6 n; L- B( d" W; J' E
SQL> select * from booking_session;
/ K% L5 e1 S8 pBK_ID|BK_DATE- u. h2 m9 ?' d" [: k9 l
-----|-------------------------
3 I6 J5 o7 f0 s, M    1|18-MAR-12 10.00.00.000000
% J" L: }/ }: T) v! `7 S: r    2|18-MAR-12 10.25.00.0000007 C# z' x" m8 K( k  n( v3 _& P5 ]
    3|18-MAR-12 10.30.00.0000007 F2 N7 T& r/ d0 E- k' G
    4|18-MAR-12 10.35.00.0000000 n) Q' H& x/ p$ Z' d/ |
    5|18-MAR-12 10.40.00.000000& h- x- Y5 d2 L+ n. y
我正在尝试编写一个sql查询,该查询选择与某个日期匹配的所有记录,但是我正在为该BK_DATE字段使用时间戳记,无论我如何尝试,我的查询都不会产生任何结果。
& y0 m4 g6 M# J- ISQL :我尝试了以下查询,但没有任何结果$ x& F; j3 [3 x) b9 s
1。% i) J" P. E' Q0 p4 ~  b
select * 7 {& @% t7 ~# g0 G% G5 N6 v, }
from booking_session
. v0 {6 s4 }/ K9 Jwhere bk_date = to_date('18-03-2012', 'dd-mm-yyyy');
* t' I1 w& H! N: u  Z! [& c2。+ ^) `+ B* o  A2 y' {: m8 x
select * : u; w- D. a2 ~; v& \9 |: n+ @
from booking_session
  W7 h3 q' y3 c5 _' Qwhere bk_date = to_timestamp('18-03-2012', 'dd-mm-yyyy');# g3 [9 [, D  u9 Y8 n) I, i0 _; R5 N
3。3 F9 K( D' R. q# N
select * 3 o# [! v* D8 W5 C% t
from booking_session  Y, U# q# x5 J7 o$ T& }
where bk_date = to_date('18-MAR-2012', 'dd-mm-yyyy');
1 }- I# l% u1 K& e% J) `仅当我将整个日期值设置为时,它才起作用;+ c# l$ u/ A: z& N
select *   i( A" C$ T8 Z. n! D4 X4 n5 I
from booking_session
; l0 O3 N7 C/ P% m" R$ R6 JWHERE bk_date = '18-MAR-12 11.00.00.000000';: Z7 D4 Y7 `& ~/ n

4 Q" l: U$ R  A/ b& {CREATE TABLE BOOKING_SESSION() |  N8 N, Y8 f! y6 Q
  BK_ID NUMBER NOT NULL,* e3 {" ]) Y0 Z/ \: c$ H4 z
  BK_DATE TIMESTAMP,0 n4 ~! ~6 i0 p! L( s) a
  BK_BOOKER NUMBER,
7 l  v: R5 j1 H  d' e  BK_CUSTOMER NUMBER,
# w0 |/ v% A# Z  BK_TREATMENT NUMBER,
! h( X# W% E% T7 }7 q, M  T_SESSION_DATETIME TIMESTAMP,% Y1 V! U+ F" b4 n
  STAFFAPPOINTED NUMBER,
: l) D, m8 Q" @# y7 |" ^  BK_ROOM NUMBER& Z- C, r$ `: B' ^
);, ?8 s" G( J, F% `: D
INSERT INTO BOOKING_SESSION VALUES (
: D" a. X3 n, E1 W# o* K/ ^: P  1,' i) T' Q: @9 B! k4 V
  TO_TIMESTAMP('18/03/2012 10:00', 'DD/MM/YYYY HH24:MI'),
2 g* ?; O8 x  L9 s) d  1,
9 ~( Z! s: \6 ]. w5 \  1,
' i; E/ X9 n* J& q- X0 B  1,1 _: U. ]' P( _+ Z' X- Y  z
  TO_TIMESTAMP('20/03/2012 11:00', 'DD/MM/YYYY HH24:MI'),2,1
+ C- T% G/ w. G( P);
: l% J* ?$ z1 T% _! |( A               
/ `& ?' N( k3 X9 y% }, i& o  m2 c解决方案:
" {4 b, t7 l/ k) X* s                ' I2 X; N" a6 ?9 V3 H

. O2 c. P. |2 ?8 J
/ }# l- d$ b( X$ i1 p, W                尼古拉斯·克拉斯诺夫(Nicholas Krasnov)提供的答案) M, L. {# X$ r" H7 U- _
SELECT *
& d( J' [% k: U/ L. j, qFROM BOOKING_SESSION
# d2 g: N2 \1 q( ^# zWHERE TO_CHAR(T_SESSION_DATETIME, 'DD-MM-YYYY') ='20-03-2012';
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则