通过手动传递日期来明智地提取日期
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
如何通过手动传递日期从 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