我有一个Oracle DB,并且我不控制日期格式。我想知道日期格式是什么,以确保搜索像
select * from search where search_date>='03/16/2016 00:00:00'
按预期工作。
不要那样做-您依赖隐式数据类型转换,该转换有时会失败。
您有两种选择:
1)使用正确的ANSI SQL日期文字:
select *
from search
where search_date >= timestamp '2016-03-16 00:00:00';
2)使用to_date()
(或to_timestamp()
)并使用自定义格式。
select *
from search
where search_date >= to_date('03/16/2016 00:00:00', 'mm/dd/yyyy hh24:mi:ss');
与to_date()
您一起应避免使用任何依赖于语言的格式。请使用月份中的数字,而不要使用缩写(例如'Mar'
或'Apr'
),因为它们再次依赖于客户端语言。
可以在手册中找到更多详细信息:https :
//docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF51062
永远不要依赖隐式数据类型转换。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句