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是一个数字,我正在更改格式。但应用上述过程会降低性能。
这是一种写作方式,还是我们可以用另一种方式把它做得更好。
任何帮助都将不胜感激。
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是一个数字,我正在更改格式。但应用上述过程会降低性能。
这是一种写作方式,还是我们可以用另一种方式把它做得更好。
任何帮助都将不胜感激。
3条答案
按热度按时间wribegjk1#
这不是最好的办法。假设
date_key
是格式为yyyy-mm-dd的字符串,然后作为字符串进行比较:比较将是准确的,并且oracle可以使用索引、分区和统计信息
date_key
.这就引出了一个问题:为什么你有一把钥匙而不是一把钥匙
date
数据类型。但这是另一个问题。bjg7j2ky2#
由于您的数字列是yyyy-mm-dd格式,您可以按如下方式直接使用它们:
w8f9ii693#
这里的日期键是一个数字
如果它真的是数字,你可以用