结束日期(a.date键,'yyyy-mm-dd'),介于结束日期('date3','yyyy-mm-dd')和结束日期('date4','yyyy-mm-dd')之间

lyr7nygr  于 2021-07-24  发布在  Java
关注(0)|答案(3)|浏览(407)
Select * from 
WHERE to_date(a.date_key, 'YYYY-MM-DD') BETWEEN to_date('&date3', 'YYYY-MM-DD') AND to_date('&date4', 'YYYY-MM-DD')

这里a.date\u key是一个数字,我正在更改格式。但应用上述过程会降低性能。
这是一种写作方式,还是我们可以用另一种方式把它做得更好。
任何帮助都将不胜感激。

wribegjk

wribegjk1#

这不是最好的办法。假设 date_key 是格式为yyyy-mm-dd的字符串,然后作为字符串进行比较:

WHERE a.date_key BETWEEN '&date3' AND '&date4'

比较将是准确的,并且oracle可以使用索引、分区和统计信息 date_key .
这就引出了一个问题:为什么你有一把钥匙而不是一把钥匙 date 数据类型。但这是另一个问题。

bjg7j2ky

bjg7j2ky2#

由于您的数字列是yyyy-mm-dd格式,您可以按如下方式直接使用它们:

SELECT * FROM your_table
 WHERE
    A.DATE_KEY BETWEEN '&date3' AND '&date4'
w8f9ii69

w8f9ii693#

这里的日期键是一个数字
如果它真的是数字,你可以用

where a.date_key between 19810101 and 19891231

相关问题