Ok, acho que te peguei. Você quer fazer o seguinte?
select <columns>
from my_table
where state_date <= <some date>
and state_time <= <some time>
É bastante incomum se preocupar com os milissegundos, mas se você fizer isso, use
systimestamp
. A julgar pelo fato de você ter dividido data e hora, esses são caracteres, então, vou ter que adivinhar o formatar máscaras . Se eles estiverem errados, o link deve orientá-lo sobre o que fazer. A propósito, não é sábio dividir uma data dessa maneira. Você pode criar uma coluna usando o
timestamp
data-type em sua tabela, o que tornaria seu problema extremamente simples. Então, não sei por que você escolheu o
'Day'
formato para sua consulta, mas indo com esse <some date>
torna-se to_char(sysdate, 'DAY')
. Do seu comentário abaixo
<some date>
seria to_char(sysdate, 'DD-MON-YY')
<some time>
seria to_char(systimestamp,'HH24:MI:SS:FF3')
, que forneceria o carimbo de data/hora em milissegundos, embora o tipo de dados possa ir para o microssegundo. Parece um pouco estranho para mim, mas sua consulta se tornaria:
select <columns>
from my_table
where state_date <= to_char(sysdate, 'DD-MON-YY')
and state_time <= to_char(systimestamp,'HH24:MI:SS:FF3')
Seria mais normal, se armazenar uma data como uma string, armazená-la no formato
yyyymmdd
então pelo menos você pode garantir que está em ordem. Se você fez algo assim, basta alterar a máscara de formato. Se você não tiver feito isso, essas consultas não funcionarão conforme o esperado. Pessoalmente, se você tem para armazenar dados dessa maneira e assumindo
state_date
é armazenado como, digamos, dd-mon-yy
, ou seja, incluindo ano, mês E dia e state_time
é armazenado como indicado acima, então eu faria algo assim:select <columns>
from my_table
where to_timestamp(state_date || state_time, 'DD-MON-YYHH24:MI:SS:FF3')
<= systimestamp
Isso torna muito mais óbvio o que está acontecendo e não há ambiguidade sobre o que
<
significa nesta situação como uma data sempre será menor que uma data futura, o que não necessariamente vale para strings. Espero que isto faça sentido.