Sql 通过手动传递日期以日期方式提取日期
如何通过手动传递日期从表中提取数据智能计数 我的代码:Sql 通过手动传递日期以日期方式提取日期,sql,oracle,oracle11g,oracle10g,Sql,Oracle,Oracle11g,Oracle10g,如何通过手动传递日期从表中提取数据智能计数 我的代码: select count(*),id,time_stamp from tab where trunc(time_stamp)='12-11-2018' group by id,time_stamp. 是否收到类似于不是有效月份的错误您必须使用函数将varchar转换为日期 TO_DATE将char、VARCHAR2、NCHAR或NVARCHAR2数据类型的char转换为日期数据类型的值 必须使用函数将varchar转换为日期 TO_D
select count(*),id,time_stamp
from tab
where trunc(time_stamp)='12-11-2018'
group by id,time_stamp.
是否收到类似于
不是有效月份的错误
您必须使用函数将varchar转换为日期
TO_DATE将char、VARCHAR2、NCHAR或NVARCHAR2数据类型的char转换为日期数据类型的值
必须使用函数将varchar转换为日期 TO_DATE将char、VARCHAR2、NCHAR或NVARCHAR2数据类型的char转换为日期数据类型的值
在与日期进行比较时,不能简单地使用任何格式的日期字符串,它必须匹配
NLS\u date\u格式
,或者必须使用将其转换为\u date
此外,最好不要直接在where子句
中的日期列上使用TRUNC
进行比较。如果索引位于列时间戳
(除非您有一个基于TRUNC(时间戳)
的函数索引)上,它将更慢,并且可能不会使用索引。请使用简单的日期/时间戳
文本,并将=
和
作为代码条件。/p
预编码选择计数(*)、id、时间戳
从选项卡
其中时间戳>=日期“2018-11-12”和时间戳<日期“2018-11-12”+1
按id、时间戳分组
在与日期进行比较时,不能简单地使用任何格式的日期字符串,它必须匹配
NLS\U date\U格式
,或者必须使用将其转换为\u date
此外,最好不要直接在where子句
中的日期列上使用TRUNC
进行比较。如果列时间戳
上存在索引,则比较慢,并且可能不会使用索引(除非您有基于TRUNC(时间戳)的函数索引)
。使用简单的日期/时间戳
文字和=
&
=日期“2018-11-12”和时间戳<日期“2018-11-12”+1
按id、时间戳分组
select count(*),id,time_stamp
from tab
where trunc(time_stamp)=to_date('12-11-2018','dd-mm-yyyy')
group by id,time_stamp.
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