通过手动传递日期来明智地提取日期

Pull date in date wise by passing date manually

如何通过手动传递日期从 table 中提取数据计数,

我的代码:

select count(*),id,time_stamp 
from tab 
where trunc(time_stamp)='12-11-2018'
group by id,time_stamp.

出现类似 not a valid month

的错误

您必须使用 to_date 函数

将 varchar 转换为日期
 select count(*),id,time_stamp 
 from tab 
 where trunc(time_stamp)=to_date('12-11-2018','dd-mm-yyyy') 
 group by id,time_stamp.

TO_DATE converts char of CHAR, VARCHAR2, NCHAR, or NVARCHAR2 datatype to a value of DATE datatype.

在与日期进行比较时,您不能简单地使用任何格式的日期字符串,它必须匹配 NLS_DATE_FORMAT 或者您必须使用 TO_DATE.

转换它

此外,不希望直接在 where clause 中的日期列上使用 TRUNC 进行比较。如果它存在于列 time_stamp 上,它会更慢并且可能不会使用索引(除非你在 TRUNC(time_stamp) 上有一个基于函数的索引。使用简单的 DATE/TIMESTAMP 文字和 >= & < 条件。

 select count(*),id,time_stamp 
 from tab 
 where time_stamp >= DATE '2018-11-12' AND time_stamp < DATE '2018-11-12' + 1
 group by id,time_stamp