对oracle中date/timestamp的操作

设置oracle中date的会话格式为 'yyyy-mm-dd hh24:mi:ss'

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

设置oracle中timestamp的会话格式为 ‘yyyy-mm-dd hh24.mi.ss.ff’

alter session set nls_timestamp_format='yyyy-mm-dd hh24.mi.ss.ff';

c#中向oracle中插入date 可以直接操作日期数据:

SELECT * FROM T_TABLE WHERE createDate Between '2015-09-15' AND '2015-09-25'

c#中向oracle中操作timestamp 必须间接的转timestamp 进行操作:

SELECT * FROM T_TABLE WHERE createDate Between TO_TIMESTAMP('2015-09-15','yyyy-mm-dd hh24:mi:ss') AND TO_TIMESTAMP('2015-09-25','yyyy-mm-dd hh24:mi:ss') 

/或者:

SELECT * FROM T_TABLE WHERE createDate Between TO_TIMESTAMP_TZ('2013-12-09','YYYY-MM-DD HH24:MI:SS.FF TZH:TZM') AND TO_TIMESTAMP_TZ('2015-12-09','YYYY-MM-DD HH24:MI:SS.FF TZH:TZM') 

注意:

在C#中,如果sql是用StringBuilder进行拼接的,对于timestamp类型日期 必须进行 to_timestamp('','')转换。

     如果sql是用OracleParameter参数进行执行的,即使对于timestamp类型日期 也不能进行 to_timestamp转换,只能传递DateTime类型,可能参数内部替换字符串时 自动进行了转换。

原文地址:https://www.cnblogs.com/adolphyang/p/4827070.html