我有一个SQLDeveloper表,其中有一列指示日期。表中的Oracle搜索函数
在表的顶部有一个过滤功能,我想知道如何搜索特定的日期。例如:什么是我写的SQL命令,在过滤器来查找日期“20141119
”(格式为“yyyymmdd
”)
我有一个SQLDeveloper表,其中有一列指示日期。表中的Oracle搜索函数
在表的顶部有一个过滤功能,我想知道如何搜索特定的日期。例如:什么是我写的SQL命令,在过滤器来查找日期“20141119
”(格式为“yyyymmdd
”)
如果您使用的是Oracle,你可以使用to_char()
将值转换。你必须要小心,因为一个Oracle date
列还可以包含时间分量:
WHERE trunc(col) = to_date('201411119', 'YYYYMMDD')
然而,最好是避免列名的函数调用 - 这阻碍了索引的使用。所以,如果你知道没有时间组件,然后使用:
WHERE col = to_date('201411119', 'YYYYMMDD')
如果你不是100%肯定,然后使用:
WHERE col >= to_date('201411119', 'YYYYMMDD') AND col < to_date('201411119', 'YYYYMMDD') + 1
编辑:
如果类型是varchar2()
,那么推测它与输入格式相同。你可以这样做:
WHERE SUBSTR(SENDINGTIME, 1, 8) = '20141119'
如果有另一种格式,那么你应该使用to_date()
如上所述将其转换。
一般来说,您应该使用本地数据库格式存储日期和时间 - 毕竟,这就是它们在那里的原因。如果你必须将它们存储为一个字符,那么YYYYMMDD是格式的一个很好的选择。
我尝试了过滤器中的所有命令,但都没有给出关于“20141119”的所需输出。我应该补充说,日期栏标有“SENDINGTIME” – paul 2014-11-21 12:07:22
该列的类型是什么? – 2014-11-20 19:59:13
该列中的数据类型是VARCHAR2 – paul 2014-11-20 20:09:59
我想要做的仅仅是使用过滤器函数来显示带有日期“20141119”的所有结果 – paul 2014-11-20 20:14:52