Oke, saya pikir saya punya Anda. Anda ingin melakukan hal berikut?
select <columns>
from my_table
where state_date <= <some date>
and state_time <= <some time>
Cukup tidak biasa untuk peduli dengan milidetik tetapi jika Anda melakukannya maka Anda harus menggunakan systimestamp
.
Dilihat dari fakta bahwa Anda telah membagi tanggal dan waktu, ini adalah karakter, Jadi, saya harus menebak format topeng
. Jika mereka salah, tautan akan memandu Anda tentang apa yang harus dilakukan. Omong-omong, tidak bijaksana membagi kencan dengan cara ini. Anda dapat membuat kolom menggunakan timestamp
tipe data di tabel Anda, yang akan membuat masalah Anda menjadi sangat sederhana.
Jadi, saya tidak tahu mengapa Anda memilih 'Day'
format untuk kueri Anda tetapi menggunakan <some date>
. itu menjadi to_char(sysdate, 'DAY')
.
Dari komentar Anda di bawah <some date>
akan menjadi to_char(sysdate, 'DD-MON-YY')
<some time>
akan menjadi to_char(systimestamp,'HH24:MI:SS:FF3')
, yang akan memberi Anda stempel waktu ke milidetik, meskipun tipe datanya bisa sampai ke mikrodetik.
Tampaknya agak aneh bagi saya tetapi pertanyaan Anda kemudian menjadi:
select <columns>
from my_table
where state_date <= to_char(sysdate, 'DD-MON-YY')
and state_time <= to_char(systimestamp,'HH24:MI:SS:FF3')
Akan lebih normal, jika menyimpan tanggal sebagai string, untuk menyimpannya dalam format yyyymmdd
jadi setidaknya Anda bisa menjamin itu teratur. Jika Anda sudah melakukan hal seperti ini maka ubah saja format mask. Jika belum, maka kueri ini tidak akan berfungsi sebagaimana mestinya.
Secara pribadi, jika Anda memiliki untuk menyimpan data dengan cara ini dan dengan asumsi state_date
disimpan sebagai, katakanlah, dd-mon-yy
, yaitu termasuk tahun, bulan DAN hari, dan state_time
disimpan seperti yang ditunjukkan di atas, maka saya akan melakukan sesuatu seperti ini:
select <columns>
from my_table
where to_timestamp(state_date || state_time, 'DD-MON-YYHH24:MI:SS:FF3')
<= systimestamp
Itu membuat lebih jelas apa yang sedang terjadi dan tidak ada ambiguitas tentang apa <
berarti dalam situasi ini sebagai tanggal akan selalu kurang dari tanggal yang akan datang, yang tidak selalu berlaku untuk string.
Saya harap ini masuk akal.