使用以下查询从表中获取计数
Select count(*)
from tab
where tdate = '17-05-19' ---> output 0
或
Select count(*)
from tab
where trunc(tdate) = '17-05-19' ---->output 0
如果我使用:
Select count(*)
from tab
where tdate >sysdate - 1 ---> it returns some count(yesterday+some of the today txn)
但是在这里,每当我触发此查询时,我只想要昨天txn。
答案 0 :(得分:0)
如果您尝试使用
Select count(*) from tab where trunc(tdate) = date'2019-05-17'
(或者,您可以使用
通过Select count(*) from tab where to_char(tdate,'dd-mm-yy') = '17-05-19'
来格式化to_char
函数
或者,您可以使用
Select count(*) from tab where trunc(tdate) = trunc(sysdate)-1
仅获取前一天的数据
)
只要您拥有5月17日的数据,您就会得到一些结果。
因此,您需要为文字提供格式为date'2019-05-17'
(称为 date文字),尤其是对于Oracle DB,它可能被用作'2019-05-17'
,而没有{ {1}}以MySQL为例。
顺便说一句,date
函数用于提取日期部分,并删除trunc
类型的列值的时间部分。
如果表中装有大量数据,那么性能可能很重要,那么您甚至可以在date
上创建功能索引。
答案 1 :(得分:0)
但是在这里,只要我触发此查询,我就只希望昨天txn。
您可以使用它。
Select count (*) from tab where
tdate >= TRUNC(SYSDATE) - 1
AND tdate < TRUNC(SYSDATE)
与在日期列上使用TRUNC
相比,这样做的优势在于,如果索引存在于tdate
上,它将利用索引。